47

Web サービスをビルドすると、次のエラーが発生します。

エラー 3004: 323 行目から始まるフラグメントのマッピングに問題があります: プロパティ JE_TRN_HS.JE_HDR_HSJE_HDR_KEY にマッピングが指定されていません。エンティティはタイプ [TESTCPModel.JE_TRN_HS] です。

これが起こったことです。このエンティティ データ モデルは、既存のデータベースから作成しました。2 つのテーブルを追加し、Web サービスを再構築しました。ビルドは成功しました。

次に、2 つのテーブル間に関連付けを追加しました。再構築しようとすると、上記のエラー メッセージが表示されて失敗しました。

これがキッカーです!新しく追加された関連付けを削除し、再構築しました。ビルドは同じエラー メッセージで失敗しました!? このエラーを取り除く唯一の方法は、2 番目のテーブルを削除し、2 番目のテーブルを再構築して再度追加することです??

私はこの問題の解決策をどこでも探しました! ありがとうスティーブ

4

13 に答える 13

40

私の場合、既存のテーブルを変更することは許可されていませんが、EF4 で「モデルに外部キー列を含める」をオンにして新しいテーブルを追加すると、テーブルに外部キー関係が含まれていないことがわかりました。関連付けると、このエラーが発生します。

データベースに存在しない EF4 モデルでの制約の定義


リンク先の記事が消えてしまった場合の解決策は次のとおりです。

関連付けのプロパティ ウィンドウを開き、Referential Constraint の楕円をクリックして、ref 制約ダイアログを表示する必要があります。次に、「依存プロパティ」設定の正しいフィールドを選択します。

于 2011-09-20T18:16:13.563 に答える
2

データベースからモデルにテーブルを単純に追加してから、モデルに新しい関連付けを作成することはできません。デフォルトでは、対応するデータベースにマップする必要がある独立した関連付けを使用します = データベースにも関係が存在する必要があります。リレーションを FK アソシエーションとしてモデル化する必要がありますが、1 対 1 および 1 対多のアソシエーションのみが許可されます。アソシエーション タイプの違いについては、こちらで説明しています

于 2011-05-19T20:41:16.847 に答える
0

モデルにマッピングできないプロパティがある場合、このエラーが発生する可能性があります。

たとえば、フィールドにいくつかを変換Linq2SqlEF6ていて、エラーが発生しましたBinary。Binary はSystem.Data.Linq型ですが、EF の場合はbyte[]. それを変更すると、問題が修正されました。

于 2016-09-25T03:18:16.853 に答える
0

私の場合、テーブルのフィールドの名前を変更し、主キーを追加しました。その後、そのエラーが発生しました。オブジェクト/モデルのリストに移動し、それを削除してデータベースから更新した後、再び同じエラーが発生しました。何度か試しましたが、何もありません。EF が生成していたクラスは、古いテーブル構造と新しいテーブル構造が混在していました。

しばらく調査した後、これが解決策です。エンティティのダイアグラムに移動します。テーブルを見つけるか、右側でモデル エクスプローラーを開きます (ダイアグラムを右クリックし、モデル エクスプローラーを開きます)。...Model、...Model.Store でモデル/テーブルを検索し、削除します。その後、データベースからテーブルを再度追加し、問題を解決します。

于 2019-05-15T16:41:05.953 に答える
0

エンティティにマッピングを適用した場合は、問題を解決するテーブルからその列を削除してみてください

于 2018-11-21T16:59:26.083 に答える
0

Linqpad からこのエラーが発生しましたが、なぜ突然発生し始めたのか、コンテキストを使用するアプリケーションでこれが問題になるのかどうかを理解できませんでした。また、新しいエンティティによって最近作成されたクラスを削除した後、.tt ファイルを右クリックし、「カーソルまで実行」をクリックしてクラスを再生成しました。それは私のためにそれを修正しました。

于 2017-03-11T10:55:09.810 に答える