【问题标题】:Extra SQL calls after EF6 upgradeEF6 升级后的额外 SQL 调用
【发布时间】:2014-03-24 06:14:15
【问题描述】:

我最近注意到在使用 miniprofiler 时有一些额外的 sql 调用。

它们似乎只在构建后出现,我认为它们是在升级到 EF6 后出现的。

他们只是检查模型的变化吗?

我可以放心地忽略它们吗?

SELECT 
    [GroupBy1].[A1] AS [C1]
    FROM ( SELECT 
        COUNT(1) AS [A1]
        FROM [dbo].[__MigrationHistory] AS [Extent1]
    )  AS [GroupBy1]



SELECT 
    [GroupBy1].[A1] AS [C1]
    FROM ( SELECT 
        COUNT(1) AS [A1]
        FROM [dbo].[__MigrationHistory] AS [Extent1]
        WHERE ([Extent1].[ContextKey] = @p__linq__0) AND (@p__linq__0 IS NOT NULL)
    )  AS [GroupBy1]


SELECT TOP (1) 
    [Project1].[C1] AS [C1], 
    [Project1].[MigrationId] AS [MigrationId], 
    [Project1].[Model] AS [Model]
    FROM ( SELECT 
        [Extent1].[MigrationId] AS [MigrationId], 
        [Extent1].[Model] AS [Model], 
        1 AS [C1]
        FROM [dbo].[__MigrationHistory] AS [Extent1]
        WHERE ([Extent1].[ContextKey] = @p__linq__0) AND (@p__linq__0 IS NOT NULL)
    )  AS [Project1]
    ORDER BY [Project1].[MigrationId] DESC

【问题讨论】:

    标签: entity-framework mvc-mini-profiler


    【解决方案1】:

    这些 DB 调用指的是使用 Code-First 时包含的新 Migration HIstory Table 功能 in EF6

    Migrations 历史表是 Code First Migrations 用来存储有关应用于数据库的迁移的详细信息的表。默认情况下,数据库中的表名称是 __MigrationHistory,它是在应用第一次迁移数据库时创建的。在 Entity Framework 5 中,如果应用程序使用 Microsoft Sql Server 数据库,则该表是系统表。然而,这在 Entity Framework 6 中发生了变化,迁移历史表不再标记为系统表。

    如果您不使用它们,这些调用应该不会造成任何伤害。您可以随时为您使用disable themhave EF create DB change scripts

    【讨论】:

      猜你喜欢
      • 2016-01-10
      • 2018-05-10
      • 1970-01-01
      • 2022-12-06
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多