最新のEFコード最初のNuGetパッケージにはDontDropDbJustCreateTablesIfModelChanged
と呼ばれるIDatabaseInitializer
のカスタム実装が付属しています。この名前が示すように、モデルの変更が検出されると、データベース全体を削除して再作成せず、テーブルを削除して再作成します。EFコードのカスタム初期化戦略最初に列を追加するテーブルを削除しない
は、私は、このモデルクラスを持っていると言う:
public class User
{
public string Username { get; set; }
// This property is new; the model has changed!
public string OpenID { get; set; }
}
どのように1はIDatabaseInitializer
そのは、任意のテーブルを削除いずれかしない実装に行きますか。この場合、OpenID
列をUserテーブルに追加するだけですか?
はい、利用可能なすべてのIDatabaseInitializer実装がより「破壊的な」アプローチを選択した方法を見ています。ありがとう –
@Sergi Papaseit:これは非常に興味深いものです。あなたはそれ以上それを取った? EF 4.1のコードに最初に実装されたことの1つは、データベースの移行です。私は上のLadislavによって提示されたものが、それが何かに自動化されて何らかの形で自動化されるならば、実際に働くことができると信じています。だから、これ以上進んでいないなら、私たちと共有してください:) – Kassem
@カッセム - 私は実際にはありません。誰かがここで私に非常に良い点を作っています。これはもちろん開発環境向けのものだから、毎回dbを落とすのは面倒ではありません。 ;) –