【ADO.net | Entity SQL Language】指定的運算式必須是 CollectionType錯誤訊息

【ADO.net | Entity SQL Language】指定的運算式必須是 CollectionType錯誤訊息
有時候Linq無法動態的做出我們所需要的查詢,這時候我們就會選擇用"串"SQL語法或是Entity SQL Language的方式來做到動態的查詢
今天在組Entity SQL的查詢條件時,發生了"指定的運算式必須是 CollectionType錯誤訊息",這個訊息是主要在傳入的參數中型態有問題時,發生的錯誤訊息
原因在於,我的@Table參數,應該給他的是資料庫的Table型態,但我卻傳入了字串給他,才發生這樣的問題!
而後來因參數是由系統中給予資料,而非使用者輸入的資料,暫時使用String.Format來解決此問題!
後續再尋找是否有更好的解決辦法吧!

有時候Linq無法動態的做出我們所需要的查詢,這時候我們就會選擇用"串"SQL語法或是Entity SQL Language的方式來做到動態的查詢

今天在組Entity SQL的查詢條件時,發生了"指定的運算式必須是 CollectionType錯誤訊息",這個訊息是主要在傳入的參數中型態有問題時,發生的錯誤訊息


List<ObjectParameter> Parameter = new List<ObjectParameter>();
Parameter.Add(new ObjectParameter("Table",/* Table的名稱 */));
CreateQuery<TEntity>("SELECT Value a FROM @Table as a ", Parameter.ToArray()).FirstOrDefault();

原因在於,我的@Table參數,應該給他的是資料庫的Table型態,但我卻傳入了字串給他,才發生這樣的問題!

而後來因參數是由系統中給予資料,而非使用者輸入的資料,暫時使用String.Format來解決此問題!

後續再尋找是否有更好的解決辦法吧!

 


 

大家好我是饅頭,希望大家喜歡我的文章

如果有錯誤的地方請不吝指教 ^_^