C#lambda提取单行字符串值

时间:2010-07-21 18:33:59

标签: c# linq lambda

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

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

当我拉.Select(...以便出错时,我会得到一个列表。

2 个答案:

答案 0 :(得分:4)

如果您知道自己只是获得一件物品,那么您应该可以这样做:

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

如果您不确定是否会使用SingleOrDefault()

如果您只想要第一个,因为您需要许多记录:

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

如果您不知道是否会得到任何内容,则同样适用,请使用FirstOrDefault

答案 1 :(得分:2)

目前还不清楚是什么问题,因为您当前的查询应该会告诉您所追求的内容。但是,您也可以使用带有谓词的First重载:

string qType = EL.ElogQueryType.First(eqt => eqt.ID == queryTypeID)
                               .QueryType;

你说你“在[你]拉动时得到一个清单。选择(”但是你的意思并不清楚。你还没有说出你已经指定的代码有什么问题。

(正如Kelsey所说,如果您愿意,可以选择First FirstOrDefaultSingleOrDefaultSingle甚至Last。)