Nom de l'objet invalide " dbo.EdmMetadata " et " dbo. MigrationHistory'

J'utilise Entity Framework 5 et je fais une simple requête pour obtenir quelques utilisateurs d'une table.

la base de données SQL est déjà créée donc j'utilise mes entities comme un moyen de mapper ce que j'ai.

quand j'exécute ma requête je détecte que d'autres requêtes ont été exécutées et 2 d'entre elles avec des erreurs:

requête 1

ERROR: Invalid nom de l'objet 'dbo.__MigrationHistory".

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

requête 2

ERROR: Invalid nom de l'objet 'dbo.EdmMetadata".

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

Pourquoi est-ce?

je n'ai pas de dbo.EdmMetadata et dbo.__MigrationHistory tables dans ma base de données car la base de données existait déjà.

comment résoudre cela?

22
demandé sur Mikael Östberg 2013-10-15 15:20:34

3 réponses

Depuis la base de données est déjà là, vous n'aurez pas dbo.EdmMetadata et dbo.__MigrationHistory ce que codefirst attend. Et pour résoudre cela, vous pouvez essayer de définir le SetInitializer null.

 static NameOfYourContext()
 {
   Database.SetInitializer<NameOfYourContext>(null);        
 }      

Vous pouvez le voir dans la section des commentaires de ce post par Scott Gu

49
répondu Mitul 2013-10-15 14:38:40

Il y a 3 étapes que vous devez suivre:

1 - Activer les migrations dans le gestionnaire de paquets si vous n'avez pas encore fait:

Enable-Migrations

2 - Ajoutez une migration et assurez-vous d'utiliser le commutateur-IgnoreChanges puisque vous avez déjà une base de données existante:

Add-Migration InitialModel -IgnoreChanges

3 - Mettre à jour la base de données. Cela créera automatiquement la table _ _ MigrationHistory pour vous.

Update-Database
1
répondu Mosh 2013-11-11 05:04:46

j'ai désactivé mon réglage d'exception. et il a négligé cette exception et a continué à créer ces tables automatiquement pour moi

0
répondu Blue Clouds 2016-07-12 11:32:52