数据库中的EDMX更新模型超时

本文关键字:模型 超时 更新 EDMX 数据库 | 更新日期: 2023-09-27 18:01:09

我有一个MSSQL数据库,里面有大约3300个表(不要问为什么,那是Nav…(。当我尝试在EDMX上"从数据库更新模型…"时,我收到了100次中的99次超时异常。所以我的问题是,有没有办法改变超时?我尝试在连接字符串中设置"连接超时",但它没有改变任何内容。

我还尝试创建一个SQL帐户,只访问我需要的表(大约10个(,但向导中仍然会超时。

数据库中的EDMX更新模型超时

工作中有人刚刚帮了我一把。

  1. 运行SQL探查器,然后尝试再次更新您的模型
  2. 捕获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
    
  3. 然后在SS管理工作室中运行查询。运行查询时,应该缓存结果。当Visual Studio再次运行查询时,结果应该会很快返回,而且不会超时。

一个小的解决方案:

  • 生成一个sql脚本,只从数据库中创建所需的表
  • 创建另一个数据库并执行sql脚本
  • 从此新数据库生成EDMX
  • 更改EDMX的连接字符串以连接到第一个DB