首先使用实体​​框架代码继承,在表中重复字段

时间:2015-05-13 11:08:23

标签: c# .net entity-framework poco

Class GeneralRequest 
{    
String BaseProperty { get set}
}

RapidRequest: GeneralRequest
{
Bool IsSignRequired { get set}    
}

BackRequest : GeneralRequest
{
Bool IsSignRequired { get set}    
}

OtherRequest: GeneralRequest
{   
String Note   { get set}   
}

这是我项目中的代码结构。

属性IsSignRequired来自BackRequest和RapidRequest,但它不需要进入OtherRequest。

但是当我使用这些代码生成数据库时。

我得到的财产IsSignRequired在我的表中出现了两次 IsSignRequired1 IsSignRequired2等。

如何指定它仅在我的表格中加一次

1 个答案:

答案 0 :(得分:1)

您需要拥有另一个srand()RapidRequest继承的中间类,用于定义继承的BackRequest,或使用IsSignRequired强制字段的名称。另一种选择是使用ColumnAttribute继承,但这将为每个子类的唯一字段生成单独的表。

EntityFramework正在执行此操作,因为该字段是在子类上独立声明的。默认情况下,每个子类将获得该类中定义的任何字段的唯一副本,只会共享继承的字段。