NHibernate AsQueryable LINQ模拟

时间:2017-04-18 19:03:47

标签: c# .net linq nhibernate linq-to-sql

我有旧代码支持。 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获取集合。

1 个答案:

答案 0 :(得分:1)

*与Linq查询无关。它不涉及任何可查询。因此,您无法对可查询对任何QueryOver调用。 QueryOver是的强类型变体,使用lambda实现强类型。

如果您想将Linq与NHibernate一起使用,请改用

query

然后,您可以使用Linq Enumerable.AsQueryable方法将您的Style替换为从内存集合中获取的查询。

*:或,同义词投票待审。