6

エンティティ モデルをソリューションに追加すると、エラー 3007 が発生します。

これらのリンクを見つけました:

良い説明

簡潔な答え

このエラーについて:

エラー 1 エラー 3007: 行 89、94 で始まるフラグメントのマッピングの問題: 非主キー列 [Person_ID] が両方のフラグメントで異なる概念サイド プロパティにマップされています - データの不一致は、対応する概念サイド プロパティが原因で発生する可能性があります独立して変更できます。

彼らの答え: Scalar プロパティの Person_ID を削除し、Navigation プロパティを残すだけで問題が解決するという彼らの結論に同意します。ただし、データベースを動的に構築しており、エンティティが頻繁に更新されるため、これはあまりスケーラブルではありません。エンティティを更新するたびに、エンティティを調べてクリーンアップする必要はありません。

私の質問: EF がエンティティを構築する方法を修正して、エラーを修正する方法はありますか? または、コードを使用してスカラー プロパティを削除する方法はありますか? おそらく、私が見落としているいくつかのオプションさえあります。

4

2 に答える 2

5

問題を解決するエンティティ モデル設計を使用して、エンティティ セットから外部プロパティ列を削除してみてください

例えば

1 つはcustomerで、もう 1 つはorderの2 つのテーブルがあり、エンティティ モデルの設計を使用して、この Ado.net エンティティ フレームワークを実行するときに顧客と注文の間の関連付けを追加しました。ナビゲーション プロパティを下の両方のテーブルに追加します。

Customer.Orders と同様 - ここでの注文はリスト Order.Customer です

一対多の関係。

そのため、 CustomerId [Foreign key column]という名前のプロパティをOrderエンティティ セットから削除する必要があります。

参考のため:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/2823634f-9dd1-4547-93b5-17bb8a882ac2/

于 2010-08-26T06:39:40.667 に答える
0

EF v1 に関する私の経験は、あなたと似ています。EDM が正しく生成されず、問題を回避できない場合は、EDM を手動で編集する必要があります。EF v.Next (Entity Framework v4 だと思います) は、「コードのみ」のエンティティ データ モデルをサポートし、EDM デザイナーははるかに優れているはずです。いずれかの改善により、私たちの生活が楽になるはずです。それまで...

于 2009-09-03T13:23:22.347 に答える