Nhibernate 如何忽略懒惰=";假;映射?
我有以下课程:Nhibernate 如何忽略懒惰=";假;映射?,nhibernate,Nhibernate,我有以下课程: public class PurchaseOrder { ... Store Store { get; protected set; } User CreatedBy { get; protected set; } User ApprovedBy { get; protected set; } ... } 使用lazy=“false”选项映射用户和存储类 。。但这没有帮助 我如何才能强制这些关联变懒并忽略lazy=“false” 我只是想说清楚。存
public class PurchaseOrder
{
...
Store Store { get; protected set; }
User CreatedBy { get; protected set; }
User ApprovedBy { get; protected set; }
...
}
使用lazy=“false”选项映射用户和存储类
。。但这没有帮助
我如何才能强制这些关联变懒并忽略lazy=“false”
我只是想说清楚。存储在User和Store类中的信息对于我的域是无用的。所以我根本不想让人把它拿走。此外,如果我在查询中加入用户和存储,将导致实体的查询链也映射为lazy=“false”(不要问为什么,我无法更改它)。我符合一些公司的标准,必须引用这些类(我不喜欢,但这是一条规则),但我不想获取它们的数据,我希望它是惰性的。您不能覆盖
lazy=“false”
你所能做的正是你所做的:急切地获取(
FetchMode.Eager
或FetchMode.Join
,它们是同义词)。我根本不想获取相关的用户和存储。然后你必须与创建映射的白痴交谈。如前所述,它不能被推翻。或者,您可以使用投影,但您将丢失所有形式的更改跟踪、身份映射等。建议阅读(对于您和您的同事):
<class name="User" lazy="false">
session.CreateCreteria<PurchaseOrder>()
...
.SetFetchMode("CreatedBy", FetchMode.Lazy)
.SetFetchMode("ApprovedBy", FetchMode.Lazy)
.SetFetchMode("Store", FetchMode.Lazy)
...