2016-10-06 3 views
0

私はエンティティフレームワークを使用するMVCプロジェクトを持っています。私は私のデータベースにいくつかの列を追加する必要があります。データベースに列を追加するためのSQLスクリプトを作成し、追加した列に一致するモデルの一部のプロパティを追加することは可能ですか?私はここでコード一番の移行を避けようとしています。私のアプローチは有効でしょうか?そうでない場合は、この問題に対する最良の解決策は何ですか?私のデータベースに列を追加し、その列に対応するモデルにプロパティを追加できますか?

ありがとうございます。

+0

これは動作しますが、今後もマイグレーションを使用しようとすると、変更を追跡するメカニズムが現在の設定と一致しないため、問題が発生する可能性があります。 – markpsmith

+0

回避あなたが尋ねたことをするために意図的に設計された解決策は、将来の大きな頭痛のためにあなたを設定しようとしています。特に、テスト/電車/ライブのような複数の環境を実際に持つことを計画している場合。 – Wurd

+0

私の経験では、データベースに列を追加してからEF図から削除して再追加することをお勧めします。 –

答えて

0

はい、もちろん可能です。テーブルがEntity Frameworkの命名規則に従っている場合は、新しい列を追加し、新しい列と同じ名前の適切なエンティティクラスに新しいプロパティを追加するだけです。あなたはこの規約を以下していない場合

public class Stuff{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    //your new column in database is named "NewColumn" 
    public string NewColumn { get; set; } 
} 

は、明示的に、彼はこのプロパティの値を探してくださいEntity Frameworkのを伝えるためにColumn annotationとエンティティクラスに新しいプロパティを飾る必要があります。あなたは多くの移行を回避したい場合

public class Stuff{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    //your new column 
    [Column("my_new_column")] 
    public string NewColumn { get; set; } 
} 
0

は、あなたは単にupdate-database続いadd-migrationコマンドを実行し、最初のプロパティを追加することができ、あなたはあなたが必要とするすべての新しいプロパティのためにそれをやり続けるだろう。 最終的に変更が必要ない状態になったら、作成したすべての移行を削除してコマンドを再度実行してからupdate-databaseを実行すると、データベーススキーマ全体を含む単一のファイルが作成されます。 まだ開発段階の初期段階にあると便利です

関連する問題