У меня есть класс, пусть это будет Foo:
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 вПоле _details и , когда я получаю доступ к Подробности , чтобы получить все Ленивые детали, конечно, я получаю new MyCollection () , но неIPersistentBag (или еще, IPersistentCollection).
Итак, как я могу вручную создать коллекцию прокси (у меня есть ссылки на session / sessionFactory)?
[добавлено] здесь есть сопоставления (на Foo):
<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>
Спасибо!