Nhibernate中的集合眏射

2021-09-05 13:17:56 字數 449 閱讀 7727

在nhibernate中經常遇到one-to-many和many-to-many的關係對映,用一些集合類來儲存關聯的many集合,這些集合類包括: ilist、array和idictionary。其在map檔案中對應的元素為 list(ilist)、set(idictionary)、bag(ilist)、map(idictionary)和array(array)。

其中比較特殊的是list和array,它們需要在關聯表中用乙個單獨欄位來儲存列表(list)或陣列(array)的索引(如childrecord[i]中的i),雖然list可以實現對無序元素的訪問,但是在nhibernate中還是必須要提供索引。這樣就出現乙個問題:如果表中沒有這樣的index欄位,將無法使用array,這樣可能降低效能,因為使用ilist的時候需要 boxing 和unboxing。

另外,在使用的過程中發現使用 list無法與datagrid繫結,而bag卻可以。

NHibernate中的分頁

如些獲得分頁的資料,應是nhibernate中常用的方法 cri.setfirstresult 20 cri.setmaxresults 10 ilist list cri.list list變數就得到某一頁的資料,上面是第20頁 從0計起 的資料。看了一其執行的sql語句 nhibernate s...

nhibernate入門系列 值集合對映

在資料庫的多對多關係中,實現方法是通過乙個額外的關聯表將兩個主表關聯起來,關聯表中只儲存兩個主表的主健,顯然,主表與關聯表是一對多的關係.這樣兩個主表就通過這個關聯表構成了乙個多對多的關係.典型的例子就是使用者和許可權了,每個使用者可以有多個許可權,而每個許可權也可以分配給多個使用者.通過乙個使用者...

NHibernate中訪問Access總不爽

一直在用的nhibernate.dialect.msaccess2000dialect,突然發現期生成表結構時有問題。查了一下,發現1.0.1的nhibernatecontrib下有乙個jetdialect,但需要多乙個dll檔案。為什麼不直接新增到主專案中呢?只好自己來了。從這裡下了完整的 編譯通...