数据库超时

时间:2015-07-06 14:03:45

标签: c# sql-server entity-framework edmx-designer

我有一个大约3300个表的MSSQL数据库(不要问为什么,这是导航......)。 当我尝试在我的EDMX上“从数据库更新模型...”时,我得到的超时异常为99次,满分100次。 所以我的问题是,无论如何都要改变超时? 我试图在连接字符串中设置“连接超时”,但它不会改变任何内容。

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

2 个答案:

答案 0 :(得分:1)

有人在工作中帮助了我。

  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 Managment Studio中运行查询。运行查询时,应缓存结果。当Visual Studio再次运行查询时,结果应该很快恢复,并且不会超时。

答案 1 :(得分:0)

一个小小的工作:

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