我正在向我的 EF 模型添加一些新表,但我现在看到此错误:
我运行了这行代码:
SET QUERY_GOVERNOR_COST_LIMIT 40000
它仍然失败并给我下面的错误。这个问题可能是什么?
我删除了新表,升级到 EF 6.2,并尝试清除整个模型并重新添加整个内容,但我仍然收到此错误。该数据库通过托管服务提供商托管。
更新: 我联系了我的托管站点管理员,他们说由于性能问题他们无法更改此值。他们说将我的数据库备份到本地 SQL 服务器,然后在那里更新并恢复到他们的托管站点。不过,我仍然很困惑 - 是不是我的表不好导致了这个问题?
Unable to generate the model because of the following exception: 'System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while reading from the store provider's data reader. See the inner exception for details. ---> System.Data.SqlClient.SqlException: The query has been canceled because the estimated cost of this query (4212) exceeds the configured threshold of 3000. Contact the system administrator. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows) at System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more) at System.Data.SqlClient.SqlDataReader.Read() at System.Data.Entity.Core.Common.Internal.Materialization.Shaper1.StoreRead() --- End of inner exception stack trace --- at System.Data.Entity.Core.Common.Internal.Materialization.Shaper
1.HandleReaderException(Exception e) at System.Data.Entity.Core.Common.Internal.Materialization.Shaper1.StoreRead() at System.Data.Entity.Core.Common.Internal.Materialization.Shaper
1.SimpleEnumerator.MoveNext() at System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.SetShaper(Shaper1 shaper, CoordinatorFactory
1 coordinatorFactory, Int32 depth) at System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.<>c__DisplayClass4.<.ctor>b__0() at System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.EnsureInitialized() at System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.Read() at System.Data.Entity.Core.EntityClient.EntityDataReader.Read() at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadDataTable[T](String sql, Func2 orderByFunc, DataTable table, EntityStoreSchemaFilterObjectTypes queryTypes, IEnumerable
1 filters, String[] filterAliases) at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadRelationships(IEnumerable1 filters) at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadStoreSchemaDetails(IList
1 filters) at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GetStoreSchemaDetails(StoreSchemaConnectionFactory connectionFactory) at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.CreateStoreModel() at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel(List1 errors) at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String storeModelNamespace, ModelBuilderSettings settings, List
1 errors) at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(ModelBuilderSettings settings, IVsUtils vsUtils, ModelBuilderEngineHostContext hostContext)'. Loading metadata from the database took 00:00:02.2571511. Generating the model took 00:00:09.6555569.
最佳答案
SET QUERY_GOVERNOR_COST_LIMIT 40000
只是设置当前连接的限制(例如,只有一个 SSMS session )。来自 VS 的所有其他调用,无论是运行时还是设计时,都不会受到这种影响。
如果您是数据库管理员(或拥有足够的权限),则使用 sp_configure .否则,您将需要联系服务器管理员。
关于sql-server - 将表添加到新 EF 模型时,商店提供商的数据读取器出现错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54859024/