14

MS SQL データベースに 3 つのテーブルがあり、これら 3 つのテーブルをインポートしたプロジェクトに EntityFramework (最新) を追加しました。最初の問題は、エンティティがビルドされなかったため、「コード生成戦略」を から に変更したNoneことでしたDefault

ビルド後、私は得る

X にはすでに Y の定義が含まれています

エンティティのすべてのプロパティ。

よく見ると、部分的な exと?のUsers.cs1 つの部分的なUserinが生成されています。MainModel.Designer.cs

なぜ生成されているのUser.csですか?別のプロジェクトで同様の設定があり、EF は同じ設定で設定されていUser.csます。

Edit1 : 1 つ異なることがわかります。それは、失敗したプロジェクトで False に設定されている Use Strong Spatial Types ですが、true (灰色) に設定することはできませんか?

4

2 に答える 2

22

None.edmx ファイルに対してコード生成戦略を使用する必要があります。または、モデル エンティティとコンテキストを生成するテンプレートを削除MainModel.ttします。MainModel.Context.tt

Defaultコード生成戦略を使用すると、エンティティとコンテキストがMainModel.Designer.csファイルに生成されます。それは から継承された標準エンティティでありEntityObject、コンテキストはから継承されますObjectContext。Entity Framework 5 では、POCO エンティティを生成します。また、生成全体は T4 テンプレートで行われ、コンテキストを生成し、 から継承されDbContext、POCO エンティティには基本型がありません (まあ、オブジェクトのみ)。

両方のテンプレートがあり、edmx デザイナーでコード生成が有効になっている場合、エンティティの 2 つのセットが生成されます。そのため、名前が競合しています。

于 2012-12-02T11:08:24.410 に答える