Есть ли способ создать ленивое пользовательское свойство с NHibernate? - PullRequest
0 голосов
/ 08 марта 2012

У меня есть пользовательское свойство (для привязки в сетке), например:

public class MyClass
{ 
       public virtual IList<clsClass2> MyList{ get; set; }  //Lazy loaded
       public virtual string CustomProperty //To use on Grid Binding
       {
          get
          {
             if (!MyList.IsNullOrEmpty())
                return MyList.Select(__comp => __comp.Name).ToList().ToString(", ");
                return string.Empty;
          }
       }   
}

Работает нормально ... Но так каждый раз, когда я загружаю объект MyClass, он загружает каждый элемент MyList из-за CustomProperty ...

Есть ли лучший способ сделать это?

Спасибо

1 Ответ

1 голос
/ 09 марта 2012
 public virtual string CustomProperty //To use on Grid Binding
 {
    get; private set;
 }

// using FLuentMapping
Map(x => x.CustomProperty).Formula("(SELECT ... FROM Class2Table c2 WHERE c2.MyClass_id = Id)");

и обмен ... с синтаксисом вашей базы данных агрегирования строки см. Здесь

...