2011-12-13 55 views
2

我有一个LINQ查询,我想选择并读取p.Api值。LINQ读取选择值

var api = DataAccessNew.Instance.dcServers.Where(p => p.Ip == IpAddress).Select(p => p.Api); 

如何读取p.Api值?我试过api.ToString()但是我得到的是SQL而不是实际的列值

回答

0

你了Syntex似乎确定..

顺便说试试这个

string api =DataAccessNew.Instance.dcServers.Where(p => p.Ip == IpAddress).Select(p => p.Api).FirstOrDefault(); 
4

你得到一个IEnumerable<>回(和你的ToString呼叫您显示表达式的值)。

如果你期待一个值,这样做:

var api = DataAccessNew.Instance.dcServers 
    .Where(p => p.Ip == IpAddress) 
    .Select(p => p.Api) 
    .Single(); 

你可能有兴趣阅读有关其他方法,如单():SingleOrDefaultFirstFirstOrDefault。你使用哪一个取决于你是否期望返回单个或多个值(Single vs. First)以及如果没有值时你想要发生什么(* Default方法将返回类型默认值而不是抛出异常)。

或者,如果你想看看所有返回值:

var api = DataAccessNew.Instance.dcServers 
    .Where(p => p.Ip == IpAddress) 
    .Select(p => p.Api); 

foreach (var apiValue in api) 
{ 
    // apiValue will have the value you're looking for. 
} 
1

试试这个代码片段:

string apiValue = api.FirstOrDefault().ToString(); 
1

如果p.Ip是表中唯一的键,你可以尝试添加.FirstOrDefault()在您的Linq查询后。