我正在向我的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.Shaper1.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.Shaper1.StoreRead() at System.Data.Entity.Core.Common.Internal.Materialization.Shaper
1.SimpleEnumerator.MoveNext()处 在System.Data.Entity.Core.Query.ResultAssembly.BridgeDataReader.SetShaper(Shaper1 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,Func2 orderByFunc, DataTable table, EntityStoreSchemaFilterObjectTypes queryTypes, IEnumerable
1个过滤器,String [] filterAliases)处 在Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadRelationships(IEnumerable1 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。
答案 0 :(得分:1)
SET QUERY_GOVERNOR_COST_LIMIT 40000
仅设置当前连接的限制(例如,仅一个SSMS会话)。 VS发出的所有其他调用(无论是运行时还是设计时)都不会受到这种影响。
如果您是数据库管理员(或具有足够的权限),请使用sp_configure。否则,您将需要与服务器管理员联系。