如果我在多個屬性上使用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
是的,您將有一個查詢非懶惰屬性,一個查詢所有懶惰屬性。 –