【发布时间】:2013-06-29 11:19:21
【问题描述】:
我将PropertyRef 用于我的References 属性之一。使用 LazyLoad() 它仍然会执行 Select 并加载 User 实体,即使我从未“点击”SalesPerson 属性。
订单映射
Id(x => x.Id).GeneratedBy.Native();
References(x => x.SalesPerson)
.LazyLoad()
.PropertyRef(x => x.Username)
.Column("rsm");
Map(x => x.Title);
订单类
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 实体时,有没有办法阻止 Select 加载用户实体?
【问题讨论】:
标签: nhibernate fluent-nhibernate nhibernate-mapping