var result = from q in memberDbSet
select new
{
no = q.no,
fullName = q.firstName + ' ' + q.lastName
};
無法創建類型的恆定值「System.Object的」。在此上下文中僅支持 基元類型或枚舉類型。Asp.net C#,無法創建類型的恆定值「System.Object的」
我得到了上面的錯誤,我做錯了什麼?
var result = from q in memberDbSet
select new
{
no = q.no,
fullName = q.firstName + ' ' + q.lastName
};
無法創建類型的恆定值「System.Object的」。在此上下文中僅支持 基元類型或枚舉類型。Asp.net C#,無法創建類型的恆定值「System.Object的」
我得到了上面的錯誤,我做錯了什麼?
發生這種情況是因爲LINQ提供程序無法將q.firstName + ' ' + q.lastName
表達式轉換爲SQL。一個解決這個是調用AsEnumerable()
把內存中的數據,並做選擇的其餘部分有:
var result = (from q in memberDbSet /* where clause goes here */)
.AsEnumerable()
. Select(q => new {
no = q.no,
fullName = q.firstName + ' ' + q.lastName
});
確保你把所有過濾到查詢之前AsEnumerable()
避免讀成記憶比您需要的更多數據。
非常感謝! –
'AsEnumerable'不是一個真正的解決方法,只是一種可以作爲最後手段應用的解決方法。我相信在這種情況下,根本問題可以修復。作爲記錄。 –
您將連接字符串和char
。顯然,實體框架不喜歡那樣。它變成
fullName = q.firstName + " " + q.lastName
的唯一的事情是,我本來期望
無法創建類型「System.Char」
這是LINQ到實體的恆定值? –
不是'System.Char'?什麼是'memberDbSet'? –
memberDbSet is IQueryable –