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

时间:2019-02-25 03:15:44

标签: sql-server entity-framework

我正在向我的EF模型添加一些新表,现在我看到此错误:

我运行了以下代码行:

SET QUERY_GOVERNOR_COST_LIMIT 40000

,它仍然失败,并给我下面的错误。这个问题可能是什么?

我已经删除了新表,升级到EF 6.2,并试图清除整个模型并重新添加整个表,但仍然出现此错误。该数据库是通过托管服务提供商托管的。

更新我与托管网站管理员联系,他们表示由于性能问题他们无法更改此值。他们说将我的数据库备份到本地SQL服务器,然后在那里更新并还原到其托管站点。不过,我仍然很困惑-我的桌子不好导致这个问题吗?

  

由于以下异常而无法生成模型:'System.Data.Entity.Core.EntityCommandExecutionException:从商店提供者的数据读取器读取时发生错误。有关详细信息,请参见内部异常。 ---> System.Data.SqlClient.SqlException:因为该查询的估计成本(4212)超过配置的阈值3000,所以查询已取消。请与系统管理员联系。   在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔值breakConnection,操作1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction)   在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔调用方HasConnectionLock,布尔asyncClose)   在System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean和dataReady)   在System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean&moreRows)   在System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout,Boolean&更多)   在System.Data.SqlClient.SqlDataReader.Read()   在System.Data.Entity.Core.Common.Internal.Materialization.Shaper 1.StoreRead() --- End of inner exception stack trace --- at System.Data.Entity.Core.Common.Internal.Materialization.Shaper 1.HandleReaderException(Exception e)处   在System.Data.Entity.Core.Common.Internal.Materialization.Shaper 1.StoreRead() at System.Data.Entity.Core.Common.Internal.Materialization.Shaper 1.SimpleEnumerator.MoveNext()处   在System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.SetShaper(Shaper 1 shaper, CoordinatorFactory 1 coordinatorFactory,Int32深度)处   在System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader。<> c__DisplayClass4。<。ctor> b__0()   在System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.EnsureInitialized()   在System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.Read()   在System.Data.Entity.Core.EntityClient.EntityDataReader.Read()   在Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadDataTable [T](字符串sql,Func 2 orderByFunc, DataTable table, EntityStoreSchemaFilterObjectTypes queryTypes, IEnumerable 1个过滤器,String [] filterAliases)处   在Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadRelationships(IEnumerable 1 filters) at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadStoreSchemaDetails(IList 1个过滤器)处   在Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GetStoreSchemaDetails(StoreSchemaConnectionFactory connectionFactory)   在Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.CreateStoreModel()   Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel处的错误(列表1 errors) at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String storeModelNamespace, ModelBuilderSettings settings, List 1错误)   在Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(ModelBuilderSettings设置,IVsUtils vsUtils,ModelBuilderEngineHostContext hostContext)中)。   从数据库加载元数据花费了00:00:02.2571511。   生成模型花费了00:00:09.6555569。

1 个答案:

答案 0 :(得分:1)

SET QUERY_GOVERNOR_COST_LIMIT 40000仅设置当前连接的限制(例如,仅一个SSMS会话)。 VS发出的所有其他调用(无论是运行时还是设计时)都不会受到这种影响。

如果您是数据库管理员(或具有足够的权限),请使用sp_configure。否则,您将需要与服务器管理员联系。