Entity Framework 数据库优先:实体继承关系及视图、存储过程使用
1. 按具体类的表继承(Table per Concrete Class,TPC)
当数据库为所有逻辑实体包含单独的表,且这些表有一些公共字段时,可以使用按具体类的表继承(TPC)。例如,存在 Employee 和 Vendor 两个单独的表,数据库设计的一个主要问题是表中列的重复,从数据库规范化的角度来看,这是不推荐的。
要实现 TPC 继承,需要执行以下任务:
1. 生成默认的实体数据模型。
2. 创建抽象类。
3. 修改 CDSL 以适应更改。
4. 指定映射以实现按类型的表(TPT)继承。
5. 通过 DBContext 对象使用实体。
1.1 生成默认的实体数据模型
Entity Framework 为这两个表提供了单独的实体。从应用程序域的角度来看,如果将所有公共属性移动到一个公共抽象类中,我们可以更好地使用这些实体。Employee 和 Vendor 实体将包含特定于它们的属性,并从这个抽象类继承以使用所有公共属性。
1.2 创建抽象类
向概念模型中添加一个名为 Worker 的新实体,并将公共属性移动到这个实体中。然后从属性窗口将这个类标记为抽象类。
1.3 修改 CDSL 以适应更改
由于已经将公共属性移动到抽象类中,EDMX 文件的概念架构定义语言(CSDL)部分已经设置好。问题将出现在存储架构定义语言(SSDL)和映射规范语言(MSL)中。首先,需要更改 SSDL,让 Entity Framework 知道抽象类 Wor
超级会员免费看
订阅专栏 解锁全文
33

被折叠的 条评论
为什么被折叠?



