many-to-many多对多映射

2016-01-29 13:27 3 1 收藏

many-to-many多对多映射,many-to-many多对多映射

【 tulaoshi.com - ASP.NET 】


多对多关系在数据库也是比较常见的,它通过一个中间表将两个主表关联起来。下面来看看多对多关联在nhibernate的实现,示例是一个用户和组之间的多对多关联。先来看看用户类的映射信息:
在多对多定义中,定义了中间表为UserGroups,此表只有两个字段:user_id和group_id;用于关联Users和Groups表。用户类的定义: public class User { public User() { } public int UserId { get { return userId; } set { userId = value; } } public int Name { get { return name; } set { name = value; } } public IDictionary Groups { get { return groups; } set { groups = value; } } private int userId; private string name; private IDictionary groups = new Hashtable();} //class User这里用一个数据字典IDictionary对角来保存组对象。再来看看组类的映射信息:

这里many-to-many的定义和用户类映射信息中的差不多。组类的定义: public class Group { public Group() { } public int GroupId { get { return groupId; } set { groupId = value; } } public int Name { get { return name; } set { name = value; } } public int Description { get { return description; } set { description = value; } } public IDictionary Users { get { return users; } set { users = value; } } private int userId; private string name; private IDictionary groups = new Hashtable();} //class User注意:多对多没有主次之分,保存时的两边都要save。下面给出部分测试代码。 public TestCreate() { User user1 = new User(); user1.Name = "test1"; User user2 = new User(); user2.Name = "test2"; Group group1 = new Group(); group1.Name = "group1"; Group group2 = new Group(); group2.Name = "group2"; user1.Groups.Add( group2, group2 ); user2.Groups.Add( group1. group1 ); group1.Users.Add( user2, user2 ); group2.Users.Add( user1, user1 ); ITransactioin trans = null; try { trans = session.BeginTransaction(); Session.Save( user1 ); Session.Save( user2 ); Session.Save( group1 ); Session.Save( group2 ); trans.Commit(); } catch ( Exception e ) { if ( trans != null ) trans.Rollback(); throw e; } finally { session.Close(); }}以上测试代码中session的相关操作请查看相关文档。

来源:http://www.tulaoshi.com/n/20160129/1490240.html

延伸阅读
标签: 十二星座 星座
白羊座 其实问白羊座在哪些地方很坚持意义不大,因为毛躁冲动又个人主义的他们可能今天什么都不妥协,明天却又什么什么都好,如同做事三分钟热度,不过,相对起来,他们非常重视隐私,尤其是情感生活,虽然其它部分可能随便,可是一说到不想谈的感情问题却是丝毫不让步,假设问他钞票和个人隐私何者重要?他一定会用力回答后...
想要备好孕 这些食物可多吃 想怀孕多吃五类 食物 健康 脂肪类食物:三文鱼、鲭鱼、鳟鱼、金枪鱼、鳕鱼、蛋黄、牛肉、亚麻子、核桃等。美国国立健康研究院一项新研究发现,不孕 女性 体内欧米伽3脂肪酸偏低。此类健康脂肪可调节女性体内激素,改善 子宫 环境,促进排卵,进而提高怀孕几率。 维生...
标签: 生活常识
羊水多对胎儿有什么影响 羊水多对胎儿有什么影响 一般羊水对于胎儿是有一定的好处的,胎儿是漂浮在羊水中的,羊水不仅能保护胎儿,而且它的量和色还能反映胎盘及胎儿在宫内的状况。孕晚期的羊水主要来源于胎儿排出的尿液,然后再通过胃肠道吞入,当胃肠道发育异常,神经管发育畸形时可出现羊水过多,但是也不需要担心,这个是正常的现象...
标签: 孕期
准爸爸多和胎宝宝说说话     在怀孕期间,孕妈妈就会对宝宝进行一些胎教,比如说和宝宝说说话什么的。但是,那些准爸爸们是否也和孕妈妈一样和胎宝宝对话过呢?事实证明,准爸爸和胎儿说话也是非常有必要的,并且胎儿也会很听爸爸的话。有不少的孕妈妈都有可能碰到过,宝宝一旦听到爸爸说话就不再继续...
为什么宝宝不长个? 引起宝宝不长个的原因需要从以下三个方面考虑: (1)疾病因素:婴儿4个月以后,从母体中带来的各种免疫物质及营养素(铁、锌等)已基本耗尽。因此,6个月以后的孩子容易患病。腹泻及呼吸道反复感染是影响6个月以后孩子不长个的原因之一。因此,为了减少孩子半岁后患病的几率,需要增加孩子的户外锻炼及营养的摄入。 ...

经验教程

703

收藏

33
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部