【发布时间】:2017-12-01 12:44:04
【问题描述】:
我正在使用 EF 6。我在 db 中有一个表,其自动生成的类如下所示:
public partial class tblPreparation
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public tblPreparation()
{
this.tblPreparationItem = new HashSet<tblPreparationItem>();
}
public int id { get; set; }
public string name { get; set; }
public System.DateTime date { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<tblPreparationItem> tblPreparationItem { get; set; }
}
在我的代码中,我希望这个类扩展另一个类 EntityObject,它位于命名空间 System.Data.Entity.Core.Objects.DataClasses 中(并实现另一个接口)。所以我创建了写了这个部分类:
public partial class tblPreparation : EntityObject, IMyInterface
{
}
它不会引发语法错误,但是当我运行应用程序时出现运行时错误:“类型 'tblPreparation' 未映射。使用 Ignore 方法或 NotMappedAttribute 数据注释检查该类型是否已明确排除. 验证该类型被定义为一个类,不是原始的或泛型的,并且不是从 EntityObject 继承的。”我错过了什么?
我认为这是因为它们不在同一个命名空间中。有没有办法解决这个问题?
【问题讨论】:
-
你让它继承自
EntityObject,并且你的错误信息明确指出验证类型[...]不继承自EntityObject。所以它不会映射,因为你让它继承自一个类,根据消息,它应该不是继承自。
标签: c# entity-framework inheritance