数据库中的EDMX更新模型超时
本文关键字:模型 超时 更新 EDMX 数据库 | 更新日期: 2023-09-27 18:01:09
我有一个MSSQL数据库,里面有大约3300个表(不要问为什么,那是Nav…(。当我尝试在EDMX上"从数据库更新模型…"时,我收到了100次中的99次超时异常。所以我的问题是,有没有办法改变超时?我尝试在连接字符串中设置"连接超时",但它没有改变任何内容。
我还尝试创建一个SQL帐户,只访问我需要的表(大约10个(,但向导中仍然会超时。
工作中有人刚刚帮了我一把。
- 运行SQL探查器,然后尝试再次更新您的模型
-
捕获Visual Studio尝试运行的SQL查询。它应该看起来像这个
SELECT [Project1].[C1] AS [C1], [Project1].[CatalogName] AS [CatalogName], [Project1].[SchemaName] AS [SchemaName], [Project1].[Name] AS [Name] FROM ( SELECT [Extent1].[CatalogName] AS [CatalogName], [Extent1].[SchemaName] AS [SchemaName], [Extent1].[Name] AS [Name], 1 AS [C1] FROM ( SELECT quotename(TABLE_SCHEMA) + quotename(TABLE_NAME) [Id] , TABLE_CATALOG [CatalogName] , TABLE_SCHEMA [SchemaName] , TABLE_NAME [Name] FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ) AS [Extent1] ) AS [Project1] ORDER BY [Project1].[SchemaName] ASC, [Project1].[Name] ASC
-
然后在SS管理工作室中运行查询。运行查询时,应该缓存结果。当Visual Studio再次运行查询时,结果应该会很快返回,而且不会超时。
一个小的解决方案:
- 生成一个sql脚本,只从数据库中创建所需的表
- 创建另一个数据库并执行sql脚本
- 从此新数据库生成EDMX
- 更改EDMX的连接字符串以连接到第一个DB