ADO.NET Enity Frame的继承设置 - VS2008(SP1)

以前在VS2005中用过强类型的DataSet, 比较痛苦;相比之下EF会好很多, 如果在EF中使用继承再结合Lambda,对于查询来说确实是方便不少.结合了其他几位高人的文章形成了我这篇文字,  这篇文字主要介绍如何从表之间的主从关系设置为在EF中的"父子关系", 即主从表改为继承关系.

1. 首先, 数据库的结构如下图

 

2010011500132990.jpg

(图-1)

从图中可以看出UserOrGroup是Group和User的主表,是一对多的关系, 下面的例子就是要修改这种关系为Group, User继承于UserOrGroup.

 

2.  在VS2008(SP1) 中,新建一个ADO.NET Entity Data Model对象,默认的文件名是Model1.edmx,然后将图-1所示的表包含到Model1.edmx中,形如

2010011500273398.jpg

(图-2)

删除图-2中UserOrGroup与User, Group之前的关系(见图-3)

2010011500290311.jpg

(图-3)

删除User对象的UserID属性, 删除Group对象的GroupID属性

2010011500313267.jpg

(图-4)

选中UserOrGroup对象,将它的Abstract属性设为True.

现在要设置User, Group与UserOrGroup对象的继承关系,即UserOrGroup是父类, User是UserOrGroup的子类; UserOrGroup是父类, Group是UserOrGroup的子类. 在UserOrGroup对象上点击鼠标右键,在弹出的快捷菜单中依次选择Add->Inheritance,

2010011500371542.jpg

(图-5)

在弹中的窗口中在Select a derived entity处选择Group, 重复上述步骤并在Select a derived entity处选择User, 以完成User和Group对UserOrGroup的继承

2010011500390436.jpg

(图-6)

设置好以后最终显示如图-7

2010011500395966.jpg

(图-7)

 

因为刚才已删除User, Group与UserOrGroup之间的关系,所以现在要重新建立:设置User.UserID与UserOrGroup.ID关联(图-8), 设置Group.GroupID与UserOrGroup.ID关联(图-9)

注: 只需要设置红框标识的Value/Property地方

2010011500432398.jpg

(图-8)

 

2010011500435017.jpg

(图-9)

 

GroupMember保存Group与User的关系,刚才在删除User,Group与UserOrGroup关系的同时,GroupMember与Group, User的关系也一起消失,所以这里要重新设置,如图-10

2010011500480488.jpg

(图-10)

 

 

设置好与GroupMember的映射以后就完成了设置User, Group继承UserOrGroup的操作.

 

 

 

结束语:  我也是刚使用ADO.NET Entity, 目前只体验到在涉及关联查询的操作上十分方便。

注: 这不是DDD.

 

 

参考引用:

体验ADO.NET Entity Framework的继承

Entity Framework Modeling : Entity Splitting

Entity Framework Modeling: Entity Splitting Part II (adding inheritance)

转载于:https://www.cnblogs.com/terrysun/archive/2010/01/15/1648179.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值