青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

We do not always find visible happiness in proportion to visible virtue

夢幻白樺林

SHARE

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  14 Posts :: 58 Stories :: 62 Comments :: 0 Trackbacks

公告

常用鏈接

留言簿(5)

搜索

  •  

最新隨筆

最新評論

閱讀排行榜

多對多關系在數據庫也是比較常見的,它通過一個中間表將兩個主表關聯起來。
下面來看看多對多關聯在nh的實現,示例是一個User和Group之間的多對多關聯。

先來看看User類的映射信息:
many-to-many mapping 

在多對多定義中,定義了中間表為UserGroups,此表只有兩個字段:user_id和group_id;用于關聯Users和Groups表。

User的定義:

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對角來保存組對象。

再來看看Group類的映射信息:
many 

這里many-to-many的定義和User類映射信息中的差不多。

組類的定義:

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 groupId;
   private string name;
   private IDictionary users = new Hashtable();

} //class Group

注意:多對多沒有主次之分,保存時的兩邊都要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的相關操作請查看相關文檔。

在實際應用中,我較少使用many-to-many映射,當然這要從性能和實際需要考慮。
我的做法是一個elements來取得所有關聯的identity, 然后在需要的時候才加載對象,有點類似lazy, 但lazy有一個問題,就是session必須沒有被釋放,這在分層開發中較難辦到。

原文:http://www.seaskyer.net/Index/Catalog44/182.html

posted on 2007-09-19 11:31 colys 閱讀(567) 評論(0)  編輯 收藏 引用 所屬分類: C#.NetNHibernate

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧洲一区二区在线观看| 在线播放亚洲| 亚洲私拍自拍| av成人黄色| 国产精品尤物| 久久免费高清视频| 欧美96在线丨欧| 日韩一级黄色片| 亚洲午夜激情网站| 韩国av一区二区三区| 欧美成人激情视频| 欧美日韩一区二区视频在线观看| 亚洲视频综合| 久久精品国产清高在天天线| 亚洲电影av| 99精品热视频只有精品10| 国产精品视频一二| 免费成人性网站| 欧美性猛交一区二区三区精品| 香蕉成人伊视频在线观看| 久久精品国产免费观看| 亚洲免费黄色| 欧美一区永久视频免费观看| 亚洲人成亚洲人成在线观看图片| 日韩天堂av| 伊人久久大香线蕉综合热线| 亚洲日本欧美在线| 国产无一区二区| 亚洲精品久久在线| 国产日韩精品视频一区| 亚洲国产精品www| 国产精品视频xxxx| 91久久国产综合久久| 国产一区二区三区精品欧美日韩一区二区三区 | 午夜精品在线观看| 狼人天天伊人久久| 亚洲综合色网站| 欧美成人免费网站| 久久久综合网站| 国产精品美腿一区在线看| 亚洲第一福利视频| 国内精品久久久| 亚洲天堂成人| 99香蕉国产精品偷在线观看| 久久精品一二三区| 欧美在线亚洲在线| 欧美亚男人的天堂| 91久久国产综合久久91精品网站| 国产婷婷色一区二区三区在线| 亚洲人成啪啪网站| 亚洲老司机av| 欧美成人免费小视频| 久久综合色综合88| 国产在线观看91精品一区| 在线午夜精品自拍| 亚洲一区在线播放| 欧美日韩国产一中文字不卡 | 一区二区高清视频| 欧美 日韩 国产 一区| 免费人成精品欧美精品| 国产在线高清精品| 久久国产精品久久精品国产| 亚洲欧美日韩直播| 国产欧美韩日| 亚洲欧美制服另类日韩| 欧美一区二区日韩| 国产欧美精品一区二区三区介绍| 在线一区日本视频| 亚洲欧美日韩高清| 国产精品人成在线观看免费 | 免费高清在线视频一区·| 国产欧美日韩在线视频| 欧美在线观看视频| 久久久人成影片一区二区三区| 国产午夜久久久久| 欧美在线free| 免费国产一区二区| 亚洲人成啪啪网站| 欧美日韩国产综合新一区| 一区二区毛片| 欧美一二区视频| 激情综合网址| 欧美日韩1区| 亚洲中字黄色| 久久深夜福利| 亚洲精品一区二区三区不| 欧美日韩三级| 亚洲欧美在线磁力| 欧美电影在线免费观看网站| 日韩亚洲欧美成人一区| 国产精品丝袜91| 久久免费精品视频| 99ri日韩精品视频| 久久女同互慰一区二区三区| 亚洲经典视频在线观看| 欧美日韩你懂的| 欧美在线观看视频| 亚洲精品久久久久久久久| 午夜国产精品视频| 亚洲福利视频专区| 国产精品任我爽爆在线播放| 久久成人这里只有精品| 亚洲欧洲综合另类在线| 久久成人免费网| 日韩性生活视频| 国内精品久久久久影院优| 欧美人与禽性xxxxx杂性| 亚洲免费影视| 亚洲日韩欧美一区二区在线| 久久精品道一区二区三区| 99视频在线精品国自产拍免费观看| 国产精品一区二区三区久久久| 女人色偷偷aa久久天堂| 亚洲影院免费观看| 亚洲久久一区二区| 欧美a级片网站| 久久av资源网站| 一区二区三区欧美亚洲| 亚洲高清视频在线观看| 国产精品视频福利| 欧美理论视频| 你懂的国产精品| 久久不射2019中文字幕| 亚洲一区二区三区视频| 亚洲国产小视频| 欧美成人综合| 美女脱光内衣内裤视频久久影院| 午夜伦理片一区| 亚洲一区二区视频| 99在线精品视频| 亚洲欧洲一二三| 亚洲国产激情| 一色屋精品视频免费看| 国产视频一区二区三区在线观看| 国产精品大片| 欧美日韩一区二区三区高清| 欧美电影电视剧在线观看| 美女主播精品视频一二三四| 欧美综合国产| 久久久www成人免费精品| 午夜视频久久久| 亚洲欧洲99久久| 欧美亚洲一区二区在线| 午夜在线观看免费一区| 亚洲自拍高清| 午夜精品久久久久久久久久久久 | 欧美在线观看网址综合| 午夜精品久久久久| 亚洲男同1069视频| 亚洲欧美一区二区三区极速播放| 亚洲一区二区在线播放| 亚洲综合欧美日韩| 性亚洲最疯狂xxxx高清| 亚洲欧美色婷婷| 久久成人资源| 乱人伦精品视频在线观看| 猛男gaygay欧美视频| 欧美激情一区二区三级高清视频| 欧美人妖另类| 国产精品久线观看视频| 国产色产综合产在线视频| 国产在线欧美| 最新国产乱人伦偷精品免费网站| 亚洲乱码久久| 午夜精品福利视频| 久久一区二区三区超碰国产精品| 噜噜爱69成人精品| 亚洲欧洲在线一区| 亚洲影音先锋| 久久这里只有| 国产精品s色| 激情欧美日韩| 一区二区三区毛片| 久久九九热re6这里有精品| 欧美成人在线免费视频| 日韩写真视频在线观看| 欧美一级久久久| 欧美激情一区二区三级高清视频| 国产精品sm| 亚洲全黄一级网站| 先锋影院在线亚洲| 亚洲国产日韩欧美| 亚洲欧美久久| 老司机精品导航| 国产精品视频yy9299一区| 亚洲国产欧美一区| 性亚洲最疯狂xxxx高清| 欧美激情五月| 欧美一区二区视频网站| 欧美日韩免费一区二区三区| 精品不卡一区| 亚洲欧美日韩综合国产aⅴ| 欧美国产日韩亚洲一区| 亚洲女ⅴideoshd黑人| 欧美激情视频一区二区三区免费 | 国产在线视频欧美一区二区三区| 99视频精品全部免费在线| 久久精品99| 亚洲一区二区四区| 欧美日韩亚洲国产一区|