0
我在當前的項目中使用了LINQ,但是這個查詢似乎很難在LINQ中設計,所以我決定嘗試SQLQuery。參數化的SQLQuery
我曾嘗試多種方法來實現的參數,但我不斷收到不同的錯誤信息,如:>「沒有映射從對象類型System.Collections.Generic.List`1存在......到已知管理提供者本地類型「。
什麼是最常見/標準的方式來支持查詢參數?
我在當前的項目中使用了LINQ,但是這個查詢似乎很難在LINQ中設計,所以我決定嘗試SQLQuery。參數化的SQLQuery
我曾嘗試多種方法來實現的參數,但我不斷收到不同的錯誤信息,如:>「沒有映射從對象類型System.Collections.Generic.List`1存在......到已知管理提供者本地類型「。
什麼是最常見/標準的方式來支持查詢參數?
由於SqlQuery類的簽名是
public DbRawSqlQuery<TElement> SqlQuery<TElement>(
string sql,
params object[] parameters
)
你的代碼是越來越轉換到相當於
Calc = db.Database.SqlQuery<TempStdDev>(query, new object[] { paramColl}).ToList();
更改您的代碼
Calc = db.Database.SqlQuery<TempStdDev>(query, paramColl.ToArray<object>()).ToList();
所以函數使用數組本身,而不是將數組放在數組的第一個插槽中。
但是,因爲函數是params
所以根本不需要使用paramColl
列表,只需傳遞成員自己。
Calc = db.Database.SqlQuery<TempStdDev>(query, start, end, uid).ToList();
附:
List<TempStdDev> Calc = new List<TempStdDev>();
應該只是
List<TempStdDev> Calc;
然後創建一個新的列表,立即將其覆蓋,沒有任何理由的第一步。