实体框架表继承

时间:2012-11-21 16:45:50

标签: entity-framework entity-framework-4

我有以下2个表TableA和ArchivedTableA。 基本上它们是相同的表,但TableA中的行被移动到ArchivedTable以存档它们。

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

2 个答案:

答案 0 :(得分:1)

我建议不要在这种情况下使用继承。如果你要"存档"从TableA到ArchiveTableA的记录它仍然在您的基表中。

朱莉·勒曼(Julie Lerman)有一篇很好的MSDN文章,介绍了遗产的一些陷阱。 http://msdn.microsoft.com/en-us/magazine/jj553510.aspx

答案 1 :(得分:0)

我会创建一个具有公共属性的基类,例如

     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 Mapping等...