2013-10-15 104 views
20

Entity Framework 5を使用して、テーブルから少数のユーザーを取得する簡単なクエリを実行しています。無効なオブジェクト名 'dbo.EdmMetadata'と 'dbo .__ MigrationHistory'

SQLデータベースはすでに作成されていますので、エンティティを使用して自分のものをマップする方法として使用します。

私は私のクエリを実行すると、私はエラーで他のクエリが実行されたことを検出し、それらの2に:

QUERY 1

ERROR: Invalid object name 'dbo.__MigrationHistory'.

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

QUERY 2

ERROR: Invalid object name 'dbo.EdmMetadata'.

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

なぜですか?

データベースが既に存在するため、私のデータベースにはdbo.EdmMetadatadbo.__MigrationHistoryというテーブルはありません。

これを解決するにはどうすればよいですか?

答えて

45

データベースはすでに存在しているので、codethirstが期待しているdbo.EdmMetadatadbo.__MigrationHistoryはありません。これを解決するには、SetInitializerをnullに設定することができます。

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

あなたは従う必要があり、3つのステップがありますScott Gu

2

によってこの記事のコメント欄でこれを見ることができます:あなたがいない場合は、パッケージマネージャでの移行を有効に

1-まだ終わって:あなたはすでに既存のデータベースを持っているよう

Enable-Migrations 

2-移行を追加し、-IgnoreChangesスイッチを使用してください:

Add-Migration InitialModel -IgnoreChanges 

3-データベースを更新します。これにより自動的に__MigrationHistoryテーブルが作成されます。

Update-Database 
0

例外設定を無効にしました。それはこの例外を見過ごして、私のためにこれらのテーブルを自動的に作成しました。

関連する問題