有没有办法用NHibernate创建一个懒惰的自定义属性?

时间:2012-03-08 18:35:18

标签: nhibernate lazy-loading

我有一个自定义属性(在Grid中绑定),如:

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对象时,由于CustomProperty,它会加载每个MyList元素......

有更好的方法吗?

由于

1 个答案:

答案 0 :(得分:1)

 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)");

并使用聚合字符串see here

的数据库语法交换...