對於我的References
屬性之一,我正在使用PropertyRef
。與LazyLoad()
它仍然會執行選擇並加載User
實體,即使我從不「擊中」SalesPerson屬性。流利-Nhibernate參考資料和PropertyRef使用惰載進行選擇
訂單映射
Id(x => x.Id).GeneratedBy.Native();
References(x => x.SalesPerson)
.LazyLoad()
.PropertyRef(x => x.Username)
.Column("rsm");
Map(x => x.Title);
Order類
public class Order : BaseEntity
{
...
public virtual User SalesPerson { get; set; }
public virtual string Title { get; set; }
...
}
用戶映射
Id(x => x.Id).GeneratedBy.Native();
Map(x => x.Username).Column("login");
用戶類
public class User : BaseEntity
{
public virtual string Username { get; set; }
...
}
生成的訂單映射
<many-to-one class="Project.User" lazy="proxy" name="SalesPerson" property-ref="Username">
<column name="rsm" />
</many-to-one>
執行代碼
var order = session.Get<Order>(1);
Console.WriteLine(order.Title);
反正是有防止選擇要加載的時候,我的用戶實體不使用User
實體?
想想我會改變我的模式使用實際的ID,這整個事情是不值得的麻煩,是不好的做法。感謝您的鏈接。 – mxmissile 2011-02-14 16:23:46