我有以下2个表TableA和ArchivedTableA。 基本上它们是相同的表,但TableA中的行被移动到ArchivedTable以存档它们。
我如何在实体框架中表示这一点,以便这两个类继承自同一个实体。我正在使用POCO。
答案 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等...