sql-server - 将表添加到新 EF 模型时,商店提供商的数据读取器出现错误消息

标签 sql-server entity-framework

我正在向我的 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, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 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.Shaper1.HandleReaderException(Exception e) at System.Data.Entity.Core.Common.Internal.Materialization.Shaper1.StoreRead() at System.Data.Entity.Core.Common.Internal.Materialization.Shaper1.SimpleEnumerator.MoveNext() at System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.SetShaper(Shaper1 shaper, CoordinatorFactory1 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, IEnumerable1 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(IList1 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, List1 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/

相关文章:

c# - Entity Framework SaveChangesAsync 阻塞了我的 UI?

C# 连接字符串问题。 EF 代码优先和数据库上下文

c# - 为什么有多个 DbContext 类?

asp.net - 如何使用 Windows 身份验证指定 Windows 用户从 ASP 连接到 MS SQL Server 数据库

c# - 如何删除 dbo.AspNetUserClaims 和 dbo.AspNetUserLogins 表(IdentityUserClaim 和 IdentityUserLogin 实体)?

c# - 具有相同列的相同表的数据建模

sql - 如何在SQL中从XML中获取指定的节点

C# Entity-Framework : How can I combine a . 查找并包含模型对象?

C#,在Mysql连接属性中connection.Server和connection.DataSource总是相等或者存在不同的情况?

sql - 如何使用 PIVOT 在 Select 查询中动态声明列