コードファーストマイグレーションについて読んだことがありますが、これはエンタープライズにはあまり適していないようです。
データベースのすべての変更を行うDBAがあり、これらの変更をクラスに入れて、アプリケーションでデータベースの移行を実行する必要はありません。
クラスと流暢なAPIを変更してから、DBAにデータベースに変更を加えさせる場合、EFモデルに同期するにはどうすればよいでしょうか。これは通常、エンタープライズサイズのアプリケーションでどのように行われますか?
コードファーストマイグレーションについて読んだことがありますが、これはエンタープライズにはあまり適していないようです。
データベースのすべての変更を行うDBAがあり、これらの変更をクラスに入れて、アプリケーションでデータベースの移行を実行する必要はありません。
クラスと流暢なAPIを変更してから、DBAにデータベースに変更を加えさせる場合、EFモデルに同期するにはどうすればよいでしょうか。これは通常、エンタープライズサイズのアプリケーションでどのように行われますか?
私は EF コード ファースト スタイル (EDMX ではなく) を使用していますが、EF にデータベースを生成させたことがないため、技術的にはデータベース ファーストのアプローチを使用しています。代わりに、データベースをモデル化するクラスを作成します。これは、あなたの場合に必要なことのように聞こえます。
DBAの変更に関しては..ドメインエンティティクラスを更新する必要があるかどうかは、DBAが変更しているものによって異なります。たとえば、彼がvarchar(100)
tovarchar(200)
などの長さを増やしている場合、その変更によって実際にコードが壊れることはありません (ただし、これに合わせてコードを更新することをお勧めします)。ただし、一部の列を削除または名前変更している場合は、ドメイン エンティティ クラスを更新する必要があります。これは、基になるモデルが同期していないという例外が明らかに発生するためです。
通常、そのような場合、人々はデータベース ファーストのアプローチを使用します。
誰かがすでにデータベースを設計していて、数回クリックするだけでモデルを生成または更新できる場合、エンティティ コードを手動で記述することは意味がありません。もちろん、あなたのチームがそれが主なアプローチであった他の ORM に慣れていて、Entity Framework にはまだあまり慣れていない場合、またはチームが非常に小さく、誰も SQL スクリプトを記述できない場合、Code First は便利ですが、熟練した DBA の皆さん、なぜ Code First が必要なのですか?
これについていくつかの考えを追加するために-これらの2つの投稿を見てください(私は少し前に作成しました):
https://stackoverflow.com/a/10164815/417747
https://stackoverflow.com/a/10255051/417747
要するに、私の経験から:
これが少し役立つことを願っています。