我有以下 2 个表 TableA 和 ArchivedTableA。基本上它们是相同的表,但是 TableA 中的行被移动到 ArchivedTable 以归档它们。
我如何在实体框架中表示这一点,以便这两个类继承自同一个实体。我正在使用 POCO。
我有以下 2 个表 TableA 和 ArchivedTableA。基本上它们是相同的表,但是 TableA 中的行被移动到 ArchivedTable 以归档它们。
我如何在实体框架中表示这一点,以便这两个类继承自同一个实体。我正在使用 POCO。
我建议不要在这种情况下使用继承。如果您要将 TableA 中的记录“归档”到 ArchiveTableA,它仍然会在您的基表中。
Julie Lerman 有一篇很好的 MSDN 文章,介绍了继承的一些陷阱。 http://msdn.microsoft.com/en-us/magazine/jj553510.aspx
我会创建一个具有通用属性的基类,例如
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 映射等...