如果我在多个属性上使用NHiberante设置LazyLoad并逐个访问这些属性,它会查询每个属性的数据库吗?
例子:Nhibernate在多列上的懒加载
public class Product
{
public virtual int ID {get; set;}
public virtual string Name {get; set;}
public virtual string FullName {get; set;}
public virtual float Price {get; set;}
}
public class ProductMap : ClassMap<Product>
{
Id(p => p.ID);
Map(p => p.Name).Not.LazyLoad();
Map(p => p.FullName).LazyLoad(); // Redundant - I know...
Map(p => p.Price).LazyLoad(); // Redundant - I know...
}
如果我查询数据库这样的:
var product = session.Load<Prodct>(2);
if (product.FullName == "*" && product.Price = 111)
会有3查询
- 产品实体
- FullName属性
- 价格属性
或者当NHibernate查询数据库的FullName时,它会查询该行的所有列?
这是我所看到的一样,所以将有两个疑问吧?希望这种情况会更短,然后在其他线程中处理。 **; - )** – gdoron
是的,您将有一个查询非懒惰属性,一个查询所有懒惰属性。 –