雙向關聯和單向關聯的區別是:兩邊都能維護關係,如我查詢兩邊的任何一邊,另外一邊的資訊也能查詢出來,其他的修改刪除只要設定了,也都可以。體現在**中是:因為上篇單向關聯是在dictionaryentity上,所以變為雙向關聯要在dictiontypeentity和他對應的xml檔案中加上關聯對映。
dictionaryentity修改為:
#region 實體屬性
/// /// 型別
///
public virtual string type
/// /// 型別名稱
///
public virtual string typename
/// /// 時間戳
///
public virtual string timestamp
/// /// 操作使用者
///
public virtual string adduser
/// /// 字典實體list集合
///
public virtual ilistdictionaryentitys
#endregion
dictionaryentity對應的xml檔案:
<?xml version="1.0" encoding="utf-8" ?>
此時,如果我們查詢了
dictionaryentity的資訊,想知道dictionarytypeentity的value的資訊,只要
在dictionaryentity.dictionarytype.value就能查詢出來我們想要的值。如果我們想儲存dictionaryentity的信
息,我們得先例項化乙個
dictionarytypeentity,並賦值給dictionaryentity.dictionarytype。如下:
dictionarytypeentity endictionarytype=new dictionarytypeentity();dictionaryentity endictionary=new dictionaryentity();
endictionary.dictionarytype=endictionarytype;
這樣就不會報「未對物件例項化」的錯誤了。這樣是不是簡單多了,避免以前的聯合查詢啥的了。
NHibernate一對多對映儲存資料
iset集合中,每個物件唯一。在nhibernate中,在父類中對應子類的iset集合時,因為set類為抽象類,所以不能例項化set類。isetlist new set 將報 無法建立抽象類或介面 iesi.collections.generic.set 的例項 錯誤。hashedset繼承於dic...
nhibernate原始碼分析之一 物件對映
1.持久物件對映檔案 關於持久物件對映檔案,這裡就不多說了,可參考nhibernate的例子和文件。2.對映資訊的讀取 通過configuration類,可以用多種方式讀取對映資訊,一些以add開頭的方法就是用來加入對映資訊的,這些方法最終將呼叫add xmldocument doc configu...
nhibernate原始碼分析之一 物件對映
1.持久物件對映檔案 關於持久物件對映檔案,這裡就不多說了,可參考nhibernate的例子和文件。2.對映資訊的讀取 通過configuration類,可以用多種方式讀取對映資訊,一些以add開頭的方法就是用來加入對映資訊的,這些方法最終將呼叫add xmldocument doc configu...