我有几个继承了一个抽象基类的类。它通过fluent API映射到现有数据库(使用table-Per-Concrete Type,即未映射到任何表的基抽象类)。
现在我想在我的代码中添加一些统计数据,对我来说最好的解决方案是对3-4个新类使用TPH方法。它可能继承也可能不继承上述相同的类。
但我不知道如何指导EF对这3-4个班级使用TPH-approach。我需要添加带鉴别器的校正表吗?可以使用吗?或者我需要以某种方式通过fluent API指定它?
发布于 2013-01-24 03:15:08
我找到了。您不需要以某种方式指定要使用TPH的EF。足以做到以下几点:
创建类层次结构
class Base { ... }
class Derived1 : Base { ... }
class Derived2 : Base { ... }
.......
class DerivedN : Base { ... }创建名为您的基本类型的表(否则,不要忘记使用ModelBuilder映射它),它具有公共列(Base的内容),并且每个派生类型中的每个公共属性都有一列。添加“判别符”列 (nvarchar(128),但我建议使用varchar,除非您使用unicode类名称)。
在DbContext的后继者中,只添加一个DbSet:DbSet<Base> Data { get; set; },并将其用于CRUD操作。
这就是全部!
https://stackoverflow.com/questions/14435570
复制相似问题