繁体   English   中英

如何从EF中的SingleOrDefault LINQ查询中选择列的子集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM