2016-11-01 157 views
0

在下面的代碼的where條件的列上有一個複合主鍵,因此只能有一個可能的返回值。我回來了SingleOrDefault,但在運行時,我得到了問題標題中的錯誤:「序列運算符不支持類型'System.String'。」我對LINQ相當陌生,所以可能會出現語法錯誤?任何幫助表示讚賞序列運算符不支持'System.String'類型。

using (myContext Data = new myContext()) 
    { 
     string Result = (from d in Data.myTable 
        where d.textColumn == myDropDownList.SelectedValue && d.intColumn == 1 
        select d.anotherTextColumn.SingleOrDefault()).ToString(); 
    } 
+5

我認爲你在錯誤的事情調用的SingleOrDefault ,而不是在外面。那麼怎麼樣:select d.anotherTextColumn **)**。SingleOrDefault() –

+1

dotnetom的答案是正確的,但如果你想知道,你不能在linq-to-entities查詢中調用ToString,因爲該查詢必須得到翻譯爲SQL而不是像正常一樣執行。 –

回答

2

你幾乎沒有 - 你需要調用SingleOrDefault()查詢對象上,而不是調用它string對象:

string Result = (from d in Data.myTable 
       where d.textColumn == myDropDownList.SelectedValue && d.intColumn == 1 
       select d.anotherTextColumn).SingleOrDefault(); 
相關問題