產品會使用NHibernate 的Lazy Loading來找尋關聯資料,
但如果沒有資料的時候就會拋出 NHibernate.ObjectNotFoundException,
是因為NHibernate 底層預設是找不到資料時會 throw Excetion 出來,這會讓我們在操作上有很大的困擾,
如下圖:
因為無法正常判斷他是否有資料,一使用 Lazy Loading 就拋出Exception ,用Try Catch 又不夠直覺,
後來發現有更簡單的方式,只要我們在Map 上設定 NotFound.Ignore() ,
References<yyyyExtend>(x => x.yyyyExtend)
.Cascade.None()
.LazyLoad()
.Columns("Key1", "Key2")
.Nullable()
.ReadOnly()
//找不到就 Return null
.NotFound.Ignore();
設定這個屬性,當Lazy Loading 找不到資料時,就會回傳 Null,這樣我們就可以更容易地操作 Entity 物件。