[英]How to Select subset of columns from SingleOrDefault LINQ query in EF
如何在使用SingleOrDefault
查询时选择所有列的子集? 例如,遵循LINQ表达式
var personid = ctx.persons.SingleOrDefault(p => p.login == currentLogin)?.personid;
将编译成SELECT TOP 1 * FROM ...
查询类型。 我想Select()
只有我感兴趣的列,例如声明生成SELECT TOP 1 personid, myColumn FROM ...
under-hood。
请注意,该问题不可能与链接问题重复。 我对Single
/ SingleOrDefault
上下文感兴趣,而不是LINQ的通用解决方案。 由于明显的原因,使用.Select()
链接.SingleOrDefault()
是不可能的: Single<T>
返回T
(或throws)类型的单个对象,它显然没有实现IEnumerable<T>
,也不能进行Select()
编辑。
var personid = ctx.persons
.Where(p => p.login == currentLogin)
.Select(p => new {Prop = p.Column, personid = p.id})
.SingleOrDefault()?.personid;
可能会奏效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.