【问题标题】:How to prevent Entity Framework Core from issuing SQL queries against MigrationHistory and EdmMetadata如何防止 Entity Framework Core 针对 MigrationHistory 和 EdmMetadata 发出 SQL 查询
【发布时间】:2020-11-04 14:57:08
【问题描述】:

Entity Framework Core 正在将此 SQL 查询发送到 SQL Server:

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

SELECT TOP (1) 
[Extent1].[Id] AS [Id], 
[Extent1].[ModelHash] AS [ModelHash]
FROM [dbo].[EdmMetadata] AS [Extent1]
ORDER BY [Extent1].[Id] DESC
go

https://www.tallan.com/blog/2019/05/02/taking-a-look-at-entity-framework-queries-pt-1-net-framework

我们如何才能停止发送这些查询?


申请代码:
这是Startup.ConfigureServices:

services.AddDbContext<AppContext>(options => options.UseSqlServer(Configuration.GetConnectionString("AppConnectionString")));

这是 DbContext:

 public class AppContext: DbContext
    {
        public AppContext(DbContextOptions<AppContext> options) : base(options)
        {
        }
        public DbSet<Currency> Currency { get; set; }
        public DbSet<StateProvince> StateProvinces { get; set; }
    }

问题陈述:
我们没有使用迁移,所有表都已经存在。因此,当 Entity Framework Core 生成这些查询时,SQL Server Profiler 会记录错误,因为 __MigrationHistor 和 EdmMetadata 不存在。

【问题讨论】:

  • 请不要发布同一个问题。 EF Core不会自动针对迁移历史表发出 SQL 查询,而且根本没有EdmMetadata。您展示的是来自 EF6 的 SQL。

标签: asp.net entity-framework entity-framework-core


【解决方案1】:

正如@IvanStoev 所说,“EF Core 不会自动针对迁移历史表发出 SQL 查询”

这些查询是由使用 Entity Framework 6 的库生成的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2022-01-25
    • 2020-09-11
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多