2014-02-27 83 views
0

當我點擊List<HickeryDickeryDock> dockMatches = (List<HickeryDickeryDock>)prtQuery.ToList();行時,彈出的錯誤是「無法創建類型爲'System.Object'的常量值,只有基本類型或枚舉類型在此上下文中受支持」 。我之前已經返回了一個通用列表對象,所以我可能會過度看待爲什麼會出現這個問題。無法創建System.Object的常量值

var prtQuery = (from p in db.PRTs 
       join m in db.PROs on p.PRT_PRO_ID equals m.PRO_ID 
       where p.PRT_PRO_ID != pro_id 
       select new HickeryDickeryDock 
       { 
        Name = m.PRO_FirstName + ' ' + m.PRO_LastName, 
        DisplayName = m.PRO_DisplayName, 
        Gender = m.PRO_Gender, 
        Age = prm.PRM_AgeStart >= p.PRT_AgeStart && prm.PRM_AgeStart <= p.PRT_AgeEnd ? 2 : 0, 
        Huckelberry = SqlFunctions.CharIndex("Huckelberry", p.PRT_Finnery) > 0 ? 2 : SqlFunctions.CharIndex("Spontaneous", prm.PRM_FINNERY) == 0 ? 0 : 2 
       }).Take(100); 


List<HickeryDickeryDock> dockMatches = (List<HickeryDickeryDock>)prtQuery.ToList(); 
+2

「p.PRT_PRO_ID」和「pro_id」的類型是什麼?你能減少代碼來刪除那些*不成問題的位嗎? (例如,你能刪除投影中的大部分屬性嗎?) –

+0

編輯以避免水平滾動太多 - 並且注意你不需要轉換'prtQuery.ToList()'的結果。它已經是'List '。 –

+0

pro_id和prt_pro_id是包含guid值的nvarchar(128)字段。我實際上刪除了很多選擇部分,但我會嘗試僅使用我提供的部分來查看它是否有效。 – user3241191

回答

0

Name = m.PRO_FirstName + ' ' + m.PRO_LastName。這是導致它失敗的線。一旦我刪除+ ' ' + m.PRO_LastName,它就起作用了。

相關問題