我正在開發每秒執行〜30個SQL查詢的C#應用程序......我有多個線程可以做到這一點。我的問題是,當我試圖用SELECT ....
查詢sql服務器時,它返回不同的結果。.NET/.NET核心和SQL Server連接不匹配問題
例子: 如果運行在不同的線程我得到相同的時間都SELECT * FROM Users
和SELECT * FROM Jobs
樣應答:
SELECT * FROM Users
- >Job colums with Job values
SELECT * FROM Jobs
- >User colums with User values
我使用小巧精緻的像這個:
using (var connection = new SqlConnection(_msSqlProvider.ConnectionString))
{
connection.Open();
return connection.Query<User>(
@"SELECT JobId
FROM Users
WHERE Id = @userId
ORDER BY Id ASC",
new {userId});
}
我的應用程序日誌看起來像(即該查詢返回的不是用戶模型數據):
中出現的異常而得到用戶的工作:一個無參數 默認構造函數或一個匹配的簽名(System.Int32標識, System.Int32用戶ID,System.Decimal工資, System.DateTime的UpdatedAt) 需要SampleApp.User物化
我的應用程序是從這個複雜的,但是這應該是好例子非常不同......
也許看看這個:https://stackoverflow.com/questions/21917836/connection-pool-one-process-many-threads –
在應用程序日誌中的例外,是不是錯的結果集從查詢 - 它是關於能夠在運行時實例化'new'匿名類型。 –
而不是在您的選擇查詢中使用JobId,請選擇*,因爲您嘗試使用您的用戶類型實現,但您選擇JobId –