Почему Entity Framework Code-First (с существующей БД) продолжает пытаться получить данные из таблицы EdmMetadata? - PullRequest
7 голосов
/ 21 марта 2011

Я пытаюсь создать код 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?

Помните, я пытаюсь работать с существующей БД.

Cheers:)

1 Ответ

10 голосов
/ 21 марта 2011

Нет Code-First для существующей базы данных. Если у вас есть база данных, вы делаете Database-first. В таком случае ваше отображение определяется базой данных.

Таблица EdmMetadata хранит хэш текущей модели с первым кодом и позволяет DbContext обнаруживать изменения модели, чтобы база данных могла быть воссоздана. Эта функция включена по умолчанию. Вы можете отключить его, удалив соглашение в OnModelCreating:

modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
...