Why does Entity Framework Code-First (with an existing DB) keep trying get data from an EdmMetadata table?

给你一囗甜甜゛ 提交于 2020-01-01 03:04:06

问题


i'm trying do some Entity Framework Code First programming to an existing database .. but I keep seeing this code in my Sql Profiler :-

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

What the hell is this EdmMetadata table and why do is my EF code trying to grab the Id and ModelHash from there?

Remember, I'm trying to work against an existing DB.

Cheers :)


回答1:


There is no Code-First against existing database. If you have database you are doing Database-first. In such case your mapping is driven by database.

EdmMetadata table keeps hash of current code-first model and it allows DbContext detecting changes of model so that database can be recreated. This feature is turned on by default. You can turn it off by removing convention in OnModelCreating:

modelBuilder.Conventions.Remove<IncludeMetadataConvention>();


来源:https://stackoverflow.com/questions/5373702/why-does-entity-framework-code-first-with-an-existing-db-keep-trying-get-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!