我正在尝试评估NHibernate.LINQ 1.0而不实际编写任何代码.Ayende承认,与EF相比,这个版本的LINQ支持是次要的,但对于我的生活,我似乎无法找到一个页面来解释这个实现中支持和不支持的内容.例如,我可以使用Skip
&Take
?我不能用什么?
reb*_*ard 18
您可以查看LINQ for NHibernate示例,看看Ayende自己完成的测试是针对什么实现的,以及针对此提供者的测试.
其中一些人普遍支持:
new { Person = x.Name }
query.First()
query.FirstOrDefault()
query.Single()
query.SingleOrDefault()
query.Aggregate((x1,x2) => x1)
query.Where(x => x.Name.Contains("Foo"))
where db.Methods.Substring(e.FirstName, 1, 2) == "An"
query.Where(x => x.Company.Id == 4)
query.Where(x => x.Relatives.Count > 0)
query.Any()
query.Take(10)
query.Take(10).Skip(4)
orderby x.Name descending
AfterMethod = e.FirstName.Replace("An", "Zan"),
where db.Methods.CharIndex(e.FirstName, 'A') == 1
where e.FirstName.IndexOf("An") == 1
问题:
我自己的一个例子:
query = NSession.Session.Linq<Catalog>() .Where(acc => acc.Company.Status == "A") .Where(acc => acc.Id.StartsWith("12-536")) .Where(acc => acc.Id.EndsWith("92") || acc.Id.EndsWith("67")) .Take(10).OrderBy(acc => acc.Title);Run Code Online (Sandbox Code Playgroud)
如果你的生产应用程序正在使用最新的稳定版本2.1.2.4,就像我一样,你会遇到NHibernate.Linq提供商给我们的东西,直到NHibernate 3.0(trunk)得到一个稳定的版本,我们觉得安全到足以使用它主要应用.在那之前,我对NHibernate.Linq和HQL的混合物感到非常满意.