EF Code First,一个类,带有鉴别器的多个表

时间:2011-10-04 22:44:44

标签: entity-framework code-first

我做了一些调查,我想知道以下是否可行。

我希望创建一个BaseEntityWithDetails类,我可以为任何我想要扩展的类型重用它。例如

public abstract class EntityDetail
{
}

此类用于保存实体的键和值。

“产品”将通过以下方式进行扩展......

public class ProductDetail : EntityDetail
{

}

public class Product : BaseEntityWithDetails<ProductDetail>
{

}

基类“BaseEntityWithDetails”将提供一些帮助方法来设置和获取。你怎么看?

使用EF CodeFirst进行映射的最有效方法是什么,同时非常容易允许其他类型实现DetailsEntityTypeConfiguration,如下所示

public class ProductMap : DetailsEntityTypeConfiguration<Product, ProductDetail>
{
}

提前致谢!

1 个答案:

答案 0 :(得分:1)

我想引用一个非常聪明的人:Reuse is a fallacy。不要做这样的事情,因为它只会让你的设计更加模糊和复杂。将您的继承保存到域中实际上具有相同行为的实体,不要预先做这种类型的假设。

作为旁注:如果您将“EntityDetail”放入数据库,则可以将其映射为table per type,但正如我之前所说,这不是一个好主意。