2010-07-21 69 views
2

想要從db中的查找表列中提取文本值。 EL是我的數據庫的實體。當前代碼:C#lambda提取單行字符串值

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

我拿到的時候我只是拉.Select(...這樣的東西是錯誤的清單。

+0

我假設你並不真的想要'第一',因爲沒有'OrderBy',而是想要選擇一個'Single'記錄。 – Kelsey 2010-07-21 18:46:22

回答

3

您應該能夠只要你知道你會得到一個項目:

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

如果你不確定你是否會得到一個或沒有使用SingleOrDefault()

如果你只是想在第一,因爲你期望多條記錄做的事:

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

同樣適用,如果你不知道你會得到什麼,使用FirstOrDefault

2

目前還不清楚什麼是錯誤的,因爲您目前的查詢應該會給你以後的結果。不過,您也可以使用First超載,這需要斷言:

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

你說你「時得到[你]拉。選擇(名單」,但它不是真正清楚你的意思你的天堂」 T表示這有什麼錯,你已經指定的代碼

(如凱爾說,有向第一替代方案:FirstOrDefaultSingleOrDefaultSingle甚至Last應該你願意的話)。