DBテーブルに列を追加した後のEntity Frameworkの問題

asp.net c# entity-framework sql-server

質問

DBのテーブルに新しいNVARCHAR列を追加する必要がありました。そこで、列を追加してから、Entity Framework用のEDMXファイルを更新するためにVisual Studioを起動しました。

私はすべてからデータベースから更新モデルを実行しましたが、それは「データリーダーは互換性がありません」というエラーにしかなりませんでした。そこで、DB内のテーブル全体の名前を変更し、データベースからEDMXを更新し、テーブルの名前を元の名前に戻し、再度updateを実行してから、影響を受けるすべてのストアドプロシージャに対して新しい関数インポートを作成しました。しかし、私はまだ同じエラーが出ます:

データリーダーは指定された '[Model]。[Entity]'と互換性がありません。型 '[Column]'のメンバーは、データリーダーに同じ名前の対応する列がありません。

私は少し振り返ってみましたが、カラム名がデータベースとフレームワークで異なる場合、これは一般的なエラーのようです。しかし、そうではありません、彼らは同じ名前を持っています。

[Entity] .Context。[Column]を介してコード内の列にアクセスできるので、データリーダーが何について不満を言っているのかよくわかりません。

私はアイデアを使い果たしたので、どんな助けでも歓迎します。

受け入れられた回答

EDMXは問題ないことがわかりましたが、デザイナーは、奇妙な理由で、私のプロジェクトでDesigner.csの更新を中止しました。

入って手動でそれを編集しなければならなかった。


人気のある回答

モデルを更新すると、ストアスキーマが置き換えられますが、クライアントスキーマやマッピングは置き換えられません。 「きれいな状態」から始めるには、現在のEDMXをバックアップしてからXMLとして開きます。テーブルへの参照をすべて削除してから、グラフィカルエラーで閉じてから開きます。造りなさい。エラー(おそらく削除されたテーブルへの壊れたリンク)がある場合は、それらを修正してください。次にモデルを更新してテーブルを再追加します。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ