2012-11-13 69 views
0

我想寫一個非常簡單的方法,它將匹配userId &返回相應的圖像路徑字符串。我的代碼是這樣的:LINQ不返回所需的數據

public string GetImagePath(int _ID) 
{ 
var imagepath=from s in context.Userinfoes 
       where s.UserID==_ID 
       select s.UserImage; 
return imagepath.ToString(); 
} 

問題是LINQ沒有加載數據,而其裝載一個字符串,如「system.data.object.objectquery1 [system.string]」!我之前多次寫過類似的方法,但第一次得到這個問題。

FYKI:

我使用的是在此之前更新了我的EDMX一個3層架構&。我刪除了我的參考&再次添加它們來解決問題,但沒有奏效。

請幫忙。

+0

LINQ沒有返回值,它返回一個對象或列表對象 –

回答

2

你需要使用單()/第一()從枚舉列表

3

你的問題是return imagepath.ToString()的ImagePath返回一個項目是不是數據。這是IQueriable。所以ToString()返回「system.data.object.objectquery1 [system.string]」。 在此代碼之前,您需要迭代您的查詢。所以,試試這個:

public string GetImagePath(int _ID) 
{ 
    var imagepath=from s in context.Userinfoes 
      where s.UserID==_ID 
      select s.UserImage; 

    return imagepath.FirstOrDefault().ToString(); 
} 
+0

謝謝哥們,我想,既然只有一個數據,所以它不會需要遍歷。謝謝。 – user1784622

+0

如果只有一個,那麼你應該調用Single()或SingleOrDefault() –

+0

可能與這個問題無關,你能否給我一個想法如何在高度和寬度方面對上傳圖像施加大小限制。我的意思是,無論上傳圖像的高度和寬度如何,我都希望根據我分配的尺寸顯示它們,但應顯示完整圖像。這將是很大的幫助。謝謝。 – user1784622