我在使用 Linq 查詢的物體框架中面臨一個問題。我有一個查詢,當我運行它時會給出這個例外
“SqlException: 查詢已被取消,因為此查詢的估計成本 (3010) 超過了配置的閾值 3000。聯系系統管理員”
服務器默認值QUERY_GOVERNOR_COST_LIMIT是3000因為它顯示了錯誤。我想更改它并提高該特定查詢的值,因為我無法更改服務器的默認值。
所以我的問題是如何QUERY_GOVERNOR_COST_LIMIT在物體框架 Linq 語法中設定值。
我已經db.Database.SqlQuery<string>("SET QUERY_GOVERNOR_COST_LIMIT 15000");
在我的查詢之前嘗試并添加了它,但它不起作用,因為如果我沒有弄錯,QUERY_GOVERNOR_COST_LIMIT它將適用于相同的查詢而不是 2 個不同的查詢
uj5u.com熱心網友回復:
SET QUERY_GOVERNOR_COST_LIMIT 正在更改當前資料庫連接的限制,因此您需要確保兩個 SQL 都使用相同的連接。
using (var context = new MyDbContext())
{
// open connection
context.Database.Connection.Open();
// set limit
context.Database.ExecuteSqlCommand("SET QUERY_GOVERNOR_COST_LIMIT 15000");
// run query with same connection
var result = context.Database.SqlQuery<...>("SELECT * ");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/368406.html
標籤:C# sql-server 数据库 实体框架 林克
上一篇:Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException:'資料庫操作預計會影響1行,但實際上影響了2行
