2011-12-13 52 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查詢後。