我有一系列映射到各自数据库对象的类。
在映射中,设置了获取模式,以便使用父记录加载相关的查找。
我现在正在引用其中的一些对象,因此我显然已经急切地加载了附属记录。
如果可能的话,我不想使用延迟加载,因为我从服务层传递这些对象 - 不理想,但我希望我能在查询级别处理这个问题。
举个例子:
var c = s.CreateCriteria(typeof(Transaction))
.Add(Restrictions.Eq("Id", myId))
.SetFetchMode("Remark", FetchMode.Join)
.SetFetchMode("Category", FetchMode.Join)
.SetFetchMode("Reason", FetchMode.Join);
var t = c.List<Transaction>().FirstOrDefault();
备注有许多与之关联的记录,当我运行此查询时,这些记录当前正在加载。
您是否可以修改ICriteria以防止参考实体加载其关联?
在这个例子中,我只想要Transction及其直接关联的备注,类别和原因
由于
答案 0 :(得分:0)
在我的头顶应该是
var c = s.CreateCriteria(typeof(Transaction))
.Add(Restrictions.Eq("Id", myId))
.CreateAlias("Remark", "remark"))
.SetFetchMode("remark.Collection", FetchMode.Lazy);