我有以下代码。通过覆盖属性继承映射
public class Person
{
public string LastName { get; set; }
}
public class Employee : Person
{
}
随着配置
Map(p => p.MapInheritedProperties());
Property(p => p.LastName).HasMaxLength(100).IsRequired();
并希望将其更改为
public class Person
{
public virtual string LastName {get; set;}
}
public class Employee : Person
{
public override string LastName
{
get { return base.LastName; }
set
{
//add validation here or throw exception
base.LastName = value;
}
}
}
如果我运行它说,该模型已被更改应用程序。 好吧,我添加了一个数据库迁移,但它的错误:
属性'LastName'不是'Employee'类型的声明属性。
验证属性尚未明确地从模型中通过使用
忽略方法或NotMappedAttribute数据注释中排除。确保它是一个有效的基本属性。
我需要添加什么类型的映射才能工作? 我使用EF 4.3和Migrations。
感谢您的任何提示。
是否级人物真的只有一个属性名字?当我尝试重现时,我需要指定一个键。 – Maarten
如果'Person'上的'LastName'被声明为'virtual',它会有所作为吗? – Enigmativity