【发布时间】:2011-06-20 12:49:29
【问题描述】:
在一个新项目中,我想使用实体框架的“代码优先”功能来设置我的数据存储。
在我的项目中,我可能有多种类型的人(持票人、旅行者、销售代理等),但我只想验证持票人。所以我创建了一个“Person”类型的基类,它没有验证属性和一个“TicketHolder”类型的继承类,其中包含对名字等的验证。
我的问题是 EF 抛出异常:
在模型生成过程中检测到一个或多个验证错误: System.Data.Edm.EdmProperty:名称:类型中的每个属性名称都必须是唯一的。属性名称“标题”已定义。
看起来 EF 没有识别出“TicketHolder”的属性会覆盖“Person”的属性。
我该如何解决这个问题?
基类:
public abstract class Person
{
public int Id { get; set; }
public virtual string Title { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
}
TicketHolder 的派生类:
public class TicketHolder : Person
{
[Required(ErrorMessage = "Title Required")]
public override string Title { get; set; }
[Required(ErrorMessage = "First Name Required")]
public override string FirstName { get; set; }
[Required(ErrorMessage = "Last Name Required")]
public override string LastName { get; set; }
}
【问题讨论】:
标签: c# entity-framework poco code-first