0

SQL Server 2008 R2上にある既存のMVC3アプリケーションとデータベースがありbool、既存のモデルにアイテムを追加する必要がありました。

モデルに追加した後、プロジェクトを再構築して公開しました。次に、SQL Server Management Studioを開いてテーブルに移動し、エントリを列に少し追加しました。テーブルには既にデータが含まれているため、null許容にする必要がありました。

すべてを機能させるために必要なことはこれだけだと思いました。ただし、次のエラーが発生しました。

'psllc_DB'コンテキストをサポートするモデルは、データベースが作成されてから変更されました。データベースを手動で削除/更新するか、IDatabaseInitializerインスタンスを使用してDatabase.SetInitializerを呼び出します。たとえば、DropCreateDatabaseIfModelChangesストラテジーは、データベースを自動的に削除して再作成し、オプションで新しいデータをシードします。

他に何をすべきかわからないので、コードに戻ってをに変更しboolbool?ので、null許容になりますが、これも役に立ちませんでした。データがいっぱいなのでデータベース全体を削除することはできませんが、最後の可能性として、このテーブルを削除して再作成すると、エントリが少ないために再作成できますが、それが機能するかどうかはわかりません。他に何をすべきかわからないので、アドバイスをいただければ幸いです。


アップデート

返事がないので、言い換えさせていただきます。

boolデータベース(SQL Express mdfファイル)を更新して、すでにデータが含まれているテーブルに列を追加するにはどうすればよいですか?更新されたMVC3エンティティコードファーストモデルと一致するデータベースが必要です。一致しない場合、上記のエラーが発生します。

ありがとう

4

1 に答える 1

1

これはコードファーストであるため、このコードファーストを実行する必要があります。クラスを変更し、EF-migrationsを使用してデータベースを変更します。モデルとデータベースは一致する可能性がありますが、データベース内のメタ情報は更新されません。

ちなみに、デフォルト値を指定すると、null許容でない列を追加できます。

于 2012-05-12T18:53:28.297 に答える