Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从linq查询返回某些属性,而不是完整的对象?_Linq_Nhibernate_Linq To Nhibernate - Fatal编程技术网

如何从linq查询返回某些属性,而不是完整的对象?

如何从linq查询返回某些属性,而不是完整的对象?,linq,nhibernate,linq-to-nhibernate,Linq,Nhibernate,Linq To Nhibernate,我刚刚下载了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

我刚刚下载了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;
var query=来自session.Linq()中的foo
其中foo.CaseNumber>0
选择foo;
我可以选择这样一个属性:

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;
var query=来自session.Linq()中的foo
其中foo.CaseNumber>0
选择foo.Id;
但是我如何选择两个属性,例如foo.Id和foo.Bar?还是不可能

谢谢


David使用匿名投影:

var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>() 
              where foo.CaseNumber > 0 
              select new { foo.Id, foo.Bar }; 
var query=来自session.Linq()中的foo
其中foo.CaseNumber>0
选择新的{foo.Id,foo.Bar};

您必须创建一个新的
匿名
类型,该类型仅在当前范围内可用(即无法从方法等返回)

var query=来自session.Linq()中的foo
其中foo.CaseNumber>0
选择new{foo.Id,foo.Bar};

或者您可以创建一个自定义类并填充它。

感谢Stephen和ck。我对Linq的生意很兴奋。这是自jQuery以来我发现的最激动人心的事情。为什么花了我这么长时间?:)哦,我的上帝,这真是太恶心了!:)林克的确是一个突破性的人物。等你发现了。然后你的大脑就会开始弯曲您链接到的页面不包含任何关于linq或事件的内容(无论如何在编程上下文中都不包含)。事件的Linq是什么?哦,我明白了,异步编程。很好吃。你的博客很有趣。我喜欢这篇关于奴隶制的文章!