【发布时间】:2017-09-19 02:33:00
【问题描述】:
我正在开发一个基于 EF Code-First 的应用程序。我有一个由几十个类继承的基类,每个类都代表数据库中的实体。基类有一个具有[NotMapped] 属性的属性,该属性原本要求所有派生类也必须是[NotMapped]。
public class BaseEntity
{
[NotMapped]
public string Message { get; set; }
}
我遇到了一个实体,其列名与该属性名完全相同,但由于从父级继承 [NotMapped] 属性,该值不会存储在数据库中。
public class InheritedEntity : BaseEntity
{
public string Message { get; set; } // This is what I want mapped
}
是否有任何方法可以通过 DataAnnotations 或 FluentAPI 覆盖该类的 NotMapped 行为?我试过设置[Column()],但它不起作用。
【问题讨论】:
-
我没有想到一个简单的解决方案,即在派生类中重命名“消息”,例如到“StatusMessage”并使用 [Column] 属性将其映射到“消息”列。这对我有用,所以现在一切都很好。
-
^ 这应该是一个答案。
-
顺便说一句,在您当前的代码中,
Message应该是一个覆盖。 -
@Usman,这也是我能找到解决此问题的唯一方法。你应该把它作为你自己问题的答案。
标签: c# entity-framework ef-code-first