3

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

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

4

2 回答 2

1

我建议不要在这种情况下使用继承。如果您要将 TableA 中的记录“归档”到 ArchiveTableA,它仍然会在您的基表中。

Julie Lerman 有一篇很好的 MSDN 文章,介绍了继承的一些陷阱。 http://msdn.microsoft.com/en-us/magazine/jj553510.aspx

于 2012-11-21T17:10:27.023 回答
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 映射等...

于 2012-11-21T16:50:28.073 回答