每次我需要从数据库更新我的emdx时,更新向导花费了难以置信的时间,一旦你点击finish (完成更新)按钮,更新向导就会把它自己渲染成没有响应。
我使用Visual Studio2015和LocalDb SQL Server2014。有些人建议安装Service Pack 1来解决这个问题。我已经为LocalDb安装了SP1,但它没有帮助。我安装的VS2015也很新。
我有最新的Entity Framework6版本(来自nuget)。
发布于 2015-11-02 00:18:22
将数据库的兼容级别设置为110对我来说很有效。
要检查兼容级别,请运行以下脚本:
select compatibility_level from sys.databases where name = '<YOUR_DB_NAME>'
要设置兼容级别,请使用以下脚本:
alter database <YOUR_DB_NAME> set compatibility_level = 110
发布于 2016-12-29 22:39:35
在数据库上运行以下代码对我来说很有效:
ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION=ON
然后,在更新之后,使用以下命令重新设置它:
ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION=OFF
这是Github上EF6存储库的per this thread。
应该注意的是,在该线程中也报告了以下内容可以工作,尽管我没有对其进行测试,因为前者对我来说工作得很好:
UPDATE STATISTICS sys.syscolpars
UPDATE STATISTICS sys.sysschobjs
UPDATE STATISTICS sys.syssingleobjrefs
UPDATE STATISTICS sys.sysiscols
他们还把这件事交给了SQL Server团队,并在Microsoft Connect上开放了this issue。
发布于 2016-03-30 01:46:20
今天,我和我的同事把向导放在一边,让它更新大约10分钟。虽然它花了相当长的时间,但它确实完成了。这是我们(目前)最好的解决方案,因为如果没有适当的权限,我们无法设置数据库的兼容级别。
https://stackoverflow.com/questions/32700540
复制相似问题