我有課,讓它成爲富:如何手動NHibernate的創建代理的詳細信息收集
public class Foo
{
...
protected MyCollection<Detail> _details
public virtual MyCollection<Detail> Details
{
get { return _details ?? new MyCollection<Details>(); }
set { _details = value; ... }
}
...
}
public class Detail {...}
當我做LINQ查詢:
var q = session.Query<Foo>().Select(foo => new Foo(property1 = foo.property1, ...);
...
q.ToList();
我有NULL in _details field,當我訪問細節得到所有懶惰細節,當然我得到new MyCollection(),但不是IPersistentBag(或其他IPersistentCollection)。
那麼我如何手動創建代理集合(我有session/sessionFactory引用)?
[新增]這裏是映射(上美孚):
<bag name="Details" lazy="true" collection-type="NHibernateDataService.DetailBag`1[[DataObjects.Detail, DataObjects]], NHibernateDataService" cascade="all-delete-orphan" fetch="select" batch-size="1" access="property" inverse="true">
<key column="`Master`" />
<one-to-many class="DataObjects.Detail" />
</bag>
謝謝!
你可以發佈你的映射嗎? – Vasea
什麼不使用_details的字段初始值設定項?如果您將項目添加到新的Foo,_details將保持爲空。 – Vasea
因爲我們的業務邏輯 - 我們通過Wcf wire始終移動對象,從服務器2客戶端和後端,我們不想關心他們=) – EvgeniyK