Entity framework 实体框架表继承

Entity framework 实体框架表继承,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,我有以下两个表格表A和ArchivedTableA。 基本上,它们是相同的表,但TableA中的行被移动到ArchivedTable以对它们进行归档 如何在实体框架中表示这一点,以便这两个类从同一实体继承。我正在使用POCOs 我将创建一个具有通用属性的基类,例如 public class BaseEntity { public virtual int Id {get;set;} public DateTime CreatedOn {get

我有以下两个表格表A和ArchivedTableA。 基本上,它们是相同的表,但TableA中的行被移动到ArchivedTable以对它们进行归档


如何在实体框架中表示这一点,以便这两个类从同一实体继承。我正在使用POCOs

我将创建一个具有通用属性的基类,例如

     public class BaseEntity
    {
         public virtual int Id {get;set;}
         public DateTime CreatedOn  {get;set;}
    }
然后创建从这个基类继承的POCO对象,因为它们有如下公共列

public class TableA : BaseEntity
{
   public string NewName {get;set;}
}

public class ArchivedTableA : BaseEntity
{
   public string Name {get;set;}
}

显然,您需要以EF管道的形式在此基础上进行DbSet映射等…

我建议在这种情况下不要使用继承。如果要将一条记录从TableA“归档”到ArchiveTableA,它仍将位于基表中


朱莉·勒曼(Julie Lerman)有一篇很好的MSDN文章,讲述了继承的一些陷阱

你的意思是要删除T4代吗?不一定。T4模板只是生成EF类的“模具”。您可以创建自己的自定义T4模板,该模板使用上述继承模式。首先,一旦你对你的对象模型满意,我会手工编写所有的类,然后从该对象模型创建T4模板。再次感谢你的回复。所以,似乎没有人能做到这一点,这是开箱即用的吗您需要创建自己的T4代-对吗?