我刚刚下载了NHibernate的Linq提供程序,我感到有点兴奋。但我不太了解Linq语法。
我可以从这样的查询中返回整个对象:
var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>()
where foo.CaseNumber > 0
select foo;
我可以选择这样一个属性:
var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>()
where foo.CaseNumber > 0
select foo.Id;
但我如何选择两个属性,例如foo.Id和foo.Bar?或者那是不可能的?
由于
大卫
答案 0 :(得分:8)
使用匿名投影:
var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>()
where foo.CaseNumber > 0
select new { foo.Id, foo.Bar };
答案 1 :(得分:1)
您必须创建一个新的Anonymous
类型,该类型仅在当前范围内可用(即无法从方法等返回。)
var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>()
where foo.CaseNumber > 0
select new { foo.Id, foo.Bar };
或者您可以创建自定义类并填充它。