我的实体具有与其他实体相同的属性,但具有不同的验证属性,例如:
public class Person
{
[Key]
public Guid Id { get; set; }
[Required]
public string Firstname { get; set; }
[Required]
public string Lastname { get; set; }
}
没有必需的属性:
public class Person2
{
[Key]
public Guid Id { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
我的策略是编写以下代码:
[EntityWithoutRequiredAttribute]
public class Person2 : Person
{
}
问题是,实体框架迁移会生成一个" nullable:false"表达:
CreateTable(
"dbo.Person2",
c => new
{
Id = c.Guid(nullable: false),
Firstname = c.String(nullable: false), // should be nullable
Lastname = c.String(nullable: false), // should be nullable
})
.PrimaryKey(t => t.Id);
是否可以从具有自定义属性的实体中删除所有必需属性" EntityWithoutRequiredAttribute"?是否可以编写一个在Add-Migration命令之前运行的注入器?
感谢!!!
答案 0 :(得分:0)
这不是解决问题的最佳解决方案,但它可能是一种解决方法,或者您可以将其用作最后的解决方案。
您可以按以下方式手动更改迁移
CreateTable(
"dbo.Person2",
c => new
{
Id = c.Guid(nullable: false),
Firstname = c.String(nullable: true),
Lastname = c.String(nullable: true),
})
.PrimaryKey(t => t.Id);