2010-09-19 52 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,以便您有效断言只会有单个结果。如果查询返回多个项目,则会出现错误情况。这可能是有用的。