![](/img/trans.png)
[英]EntityFramework 6 Database.SqlQuery connection resiliency
[英]Database.SqlQuery thread safety
有沒有人知道Database.SqlQuery是否會做一些讓線程不安全的事情(比如創建或招募交易等)?
這是我必須從多個線程調用的代碼段 - 查詢非常簡單,硬編碼(無法訪問共享用戶代碼數據):
public virtual long GetId(string sql)
{
var newid = DbContext.Database.SqlQuery<long>(sql).First();
return newid;
}
我的目標是在次要發布期間通過 - 然后我們將有機會在需要時正確實現同步。
由於ADO.NET采用連接池並且創建一個相對輕量級的新DbContext
,因此可以安全地創建許多可在使用它們之后處理的上下文。
所以我會考慮在using塊中創建一個新的DbContext
,而不是使用field / property。
要回答您的第一個問題,運行像您的問題中的代碼之類的查詢將只執行針對數據庫的語句,就像您使用舊式ADO.NET方式一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.