使用linq到NHibernate(NHibernate v3)我有以下LINQ查询:
var session = this.GetSession();
var rgn = this.Get(regionId);
var query = from t in session.Query<Tag>()
where
!(
from trn in session.Query<Translation>()
where trn.Region.Id == regionId
select trn.Tag.Id
)
.Contains(t.Id)
select new Translation() {Id = t.Id, Tag = t, Region = rgn, TagTranslation=""};
var count = query.Count();
var untranslatedTags = query.Skip((page - 1)*pageSize).Take(pageSize);
var countAfterSkipAndTake = untranslatedTags.Count();
return untranslatedTags.ToList();
}
count变量确实返回了预期值。但是countAfterSkipAndTake返回相同的值。我希望它能返回pageSize(在这种情况下是15)。最后一行untranslatedTags.ToList()返回一个异常。我相信LINQ到NHibernate还没有完全实现,在我尝试下载trunk之前,任何人都可以看到任何明显我做错了。
答案 0 :(得分:1)
我想,因为我过去遇到过类似的问题,var count = query.Count();
迫使nHibernate编译查询,因此任何未来修改它都是徒劳的,因为它&#39已经被处决了。
要对此进行测试,请删除该行并查看countAfterSkipAndTake
现在是否为15。