我有以下2個表TableA和ArchivedTableA。 基本上它們是相同的表格,但TableA中的行移動到ArchivedTable中歸檔它們。實體框架表繼承
我如何在實體框架中表示這個,以便這兩個類繼承自同一個實體。我正在使用POCO。
我有以下2個表TableA和ArchivedTableA。 基本上它們是相同的表格,但TableA中的行移動到ArchivedTable中歸檔它們。實體框架表繼承
我如何在實體框架中表示這個,以便這兩個類繼承自同一個實體。我正在使用POCO。
我會建議不要在這種情況下使用繼承。如果您要將TableA中的記錄「歸檔」到ArchiveTableA,它仍然會在您的基表中。
朱莉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;}
}
然後創建從這個基類becouse他們有共同的列如下繼承POCO對象....
public class TableA : BaseEntity
{
public string NewName {get;set;}
}
public class ArchivedTableA : BaseEntity
{
public string Name {get;set;}
}
顯然,你需要做的DbSet映射等,在EF管道的形式這個頂部...
感謝您的回覆。 –
你的意思是刪除T4代? –
不一定。 T4模板只是「模具」來生成您的EF類。您可以創建自己的自定義T4模板,它使用上面的繼承模式。首先,我會在您對對象模型感到滿意後手寫所有類,然後從該對象模型創建T4模板。 – daehaai