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

我正在尝试对现有数据库执行一些entity framework代码优先编程..但我一直在我的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?

请记住,我正在尝试对抗现有数据库。

干杯:)

针对现有数据库没有Code-First。 如果你有数据库,那么你首先要做数据库。 在这种情况下,您的映射由数据库驱动。

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

 modelBuilder.Conventions.Remove();