2

既存のDBがあり、最初にEF 4.1コードを使用して、POCOオブジェクトをテーブルにマップしました。しかし、私はこのエラーを受け取ります:

EF 4.1エラーEdmMetadataタイプのため、モデルの互換性を確認できません

OnModelCreatingメソッドを追加しましたが、それでも同じエラーが発生します。

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{     
    modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); 
}

私のPOCOとDBテーブルはまったく同じです。

4

1 に答える 1

2

問題は、データベースが存在しているにもかかわらず、EFCodeFirstを使用してデータベースを作成しようとしていることのようです。データベースを削除すると、これが実行される可能性が高く、データベースとテーブルが作成されます。これは、この問題を抱えていた人へのリンクであり、それが彼らがそれを解決した方法です:

http://forums.asp.net/t/1673379.aspx/1?Unable+to+generate+Edm+Metadata+table+at+runtime+from+EF+code+first+model

既存のデータベースを使用したい場合(他のデータが含まれている場合)、CodeFirstが期待するものを変更する必要があると思います。これを行う方法に関するSOの記事は次のとおりです。

Entity FrameworkCTP4-コードファーストカスタムデータベースイニシャライザー

答えとして受け入れられなかったものでさえ、あなたができることについていくつかの素晴らしい情報を持っているので、必ずすべての投稿を読んでください。

于 2011-05-09T01:59:14.743 に答える