1

ちょっと、英語が下手でごめんなさい... EF4コードのみを使用して、いくつかのPOCOクラスを作成し、そこからデータベースを生成しました。すべてうまくいきました。テーブルにいくつかのデータを挿入しましたが、クラスの 1 つで新しいプロパティを作成する必要があります。作成しただけでは、アプリケーションから例外が返されます: {"データベースが作成されてから、'TestContext' コンテキストをサポートするモデルが変更されました。データベースを手動で削除/更新するか、IDatabaseInitializer インスタンスで Database.SetInitializer を呼び出します。たとえば、RecreateDatabaseIfModelChanges 戦略は、データベースを自動的に削除して再作成し、オプションで新しいデータをシードします。"}

テーブルのフィールドを手動で作成しようとしましたが、まだ文句を言っています...誰かが方法があるかどうかを知っていますか?もしそうなら、どうすればデータベーススキーマを手動で更新できますか?モデルに一致するデータがありますか?

4

2 に答える 2

1

新しい列が新しいプロパティと正確に一致することを確認すれば、うまくいくはずです。

たとえば、プロパティ NewProp を追加すると、

public class MyEntity
{
    [Key]
    public int Id;

    public string PropA;
    public int PropB;

    public int NewProp;

}

次に、データベース テーブル MyEntities に、型 int not null の列 NewProp を追加します。

追加した列が正しいかどうかを確認するためにできることは、データベースの名前を変更してから、Code-First でデータベースを再作成し、元のデータベースと新しいデータベースの違いを確認することです。

于 2010-11-02T13:56:59.397 に答える
1

EF は部分クラスを生成します。したがって、別の部分クラスに新しいプロパティ (フィールド) を追加できます。

于 2010-11-01T21:52:10.747 に答える