gpt4 book ai didi

c# - 为什么 Entity Framework Code-First(使用现有数据库)一直尝试从 EdmMetadata 表中获取数据?

转载 作者:太空狗 更新时间:2023-10-29 20:11:35 28 4
gpt4 key购买 nike

我正在尝试对现有 数据库进行一些 Entity Framework Code First 编程......但我一直在我的 Sql Profiler 中看到这段代码:-

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

这个 EdmMetadata 表到底是什么,为什么我的 EF 代码试图从那里获取 Id 和 ModelHash?

请记住,我正在尝试针对现有数据库进行操作。

干杯:)

最佳答案

没有针对现有数据库的代码优先。如果您有数据库,那么您正在做数据库优先。在这种情况下,您的映射由数据库驱动。

EdmMetadata 表保留当前代码优先模型的哈希值,它允许 DbContext 检测模型的变化,以便重新创建数据库。默认情况下启用此功能。您可以通过删除 OnModelCreating 中的约定来关闭它:

modelBuilder.Conventions.Remove<IncludeMetadataConvention>();

关于c# - 为什么 Entity Framework Code-First(使用现有数据库)一直尝试从 EdmMetadata 表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5373702/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com