2010-09-19 50 views
2
var x = from y in db.table 
      where y.member_id == 1 
      select new { y.member_id }; 

此語句應該只返回一條記錄。 &我想檢索該值,該語句以字符串格式返回。如何從LINQ語句返回值

string m = x; 

我怎麼能做到這一點?

回答

3
var x = (from y in db.table 
     where y.member_id == 1 
     select new { y.member_id }).FirstOrDefault(); 

如果用戶不存在,它將返回null

儘管如果y.member_id應該是一個字符串,你可能會想要擺脫new { }部分。

var x = (from y in db.table 
     where y.member_id == 1 
     select y.member_id).FirstOrDefault(); 
0

您可以使用:

string m = db.table.where(member=>member.member_id == 1).FirstOrDefault().member_id.ToString(); 

,提供 '表' 是POCO或者它可以支持屬性訪問。

0

您可以使用take 1將返回元素的數量限制爲1,但仍然會從查詢中獲取收集(您必須使用例如.First()提取第一個元素)。

但是,爲什麼不直接使用

val element = db.table.First(x => x.member_id == 1); 

找到滿足您的謂詞的元素?

0

如果您確定該聲明只應返回單個結果,而不是使用.First/.FirstOrDefault,則應使用.Single/.SingleOrDefault,以便您有效斷言只會有單個結果。如果查詢返回多個項目,則會出現錯誤情況。這可能是有用的。