我有旧代码支持。 NHibernate用于查询DB。有像IQueryOver.Where
这样的NHibernate LINQ查询。它工作正常但我想将这些查询用于本地序列。在Microsoft LINQ中,有方法Enumerable.AsQueryable
。 NHibernate LINQ中有没有类似的东西?
所以我有这个。
private IQueryOver<Package> GetPackages(GetPackageMessage message)
{
var query = SessionFactory.Current.QueryOver<Package>();
if (message.TzapUtc.Use)
{
query = query.Where(x => x.Tzap_utc >= message.TzapUtc.ValueBegin);
}
if (message.Iik.Use)
{
query = use ? query.Where(x => x.Iik == message.Iik.Value);
}
}
我需要将所有这些应用到我的本地集合IEnumerable&lt;包装及GT;
而不是从DB获取集合。
答案 0 :(得分:1)
queryover *与Linq查询无关。它不涉及任何可查询。因此,您无法对可查询对任何QueryOver调用。 QueryOver是nhibernate-criteria的强类型变体,使用lambda实现强类型。
如果您想将Linq与NHibernate一起使用,请改用linq-to-nhibernate。
query
然后,您可以使用Linq Enumerable.AsQueryable
方法将您的Style
替换为从内存集合中获取的查询。
*:或nhibernate-queryover,同义词投票待审。