C#lambda提取单行字符串值

C#lambda提取单行字符串值,c#,linq,lambda,C#,Linq,Lambda,要从数据库中查找表的列中提取文本值。EL是我的数据库的实体。当前代码: var QTypes = EL.ElogQueryType.Where<ElogQueryType>( eqt=> eqt.ID == queryTypeID); string qType = QTypes.First().QueryType; var QTypes=EL.ElogQueryType.Where(eqt=>eqt.ID==queryTypeI

要从数据库中查找表的列中提取文本值。EL是我的数据库的实体。当前代码:

var QTypes = EL.ElogQueryType.Where<ElogQueryType>( eqt=> eqt.ID == queryTypeID);                       
string qType = QTypes.First().QueryType; 
var QTypes=EL.ElogQueryType.Where(eqt=>eqt.ID==queryTypeID);
字符串qType=QTypes.First().QueryType;

当我拉
时,我会得到一个列表。选择(…
,这样就有问题了。

不清楚哪里出了问题,因为您当前的查询应该会给出您想要的内容。但是,您也可以使用
First
的重载,它使用谓词:

string qType = EL.ElogQueryType.First(eqt => eqt.ID == queryTypeID)
                               .QueryType;
你说你“在拉.选(“pull.Select”)的时候得到一个列表,但你并不清楚你的意思。你还没有说你已经指定的代码有什么问题


(正如凯尔西所说,除了第一个,还有其他选择:
FirstOrDefault
SingleOrDefault
Single
,甚至是
最后一个
,如果你愿意的话。)

如果你知道你只会得到一件物品,你应该可以这样做:

var QTypes = EL.ElogQueryType.Where(eqt=> eqt.ID == queryTypeID).Single().QueryType;
如果您不确定是否会得到一个或什么,请使用
SingleOrDefault()

如果您只需要第一条记录,因为您需要许多记录,请执行以下操作:

var QTypes = EL.ElogQueryType.First(eqt=> eqt.ID == queryTypeID).QueryType;

如果您不知道是否会得到任何东西,请使用
FirstOrDefault

我假设您并不真正想要
第一个
,因为没有
OrderBy
,而是只想选择一条
单个
记录。