codefirst EF4を使用したデータベースリファクタリングのベストプラクティスは何ですか?
RecreateDatabaseIfModelChangesオプションが実行できない場合に、人々がクラスとデータベースをどのように変更するかを知りたいと思います。データの移行を行う必要があります。
現在、Microsoftには、モデルを最初に使用してこれを行うためのソリューションがあります。
誰かが最初にコードのための良い戦略を持っていますか?
codefirst EF4を使用したデータベースリファクタリングのベストプラクティスは何ですか?
RecreateDatabaseIfModelChangesオプションが実行できない場合に、人々がクラスとデータベースをどのように変更するかを知りたいと思います。データの移行を行う必要があります。
現在、Microsoftには、モデルを最初に使用してこれを行うためのソリューションがあります。
誰かが最初にコードのための良い戦略を持っていますか?
モデルとデータベーススキーマが同期していない場合にウェブマスターに通知し、何が異なるかを表示するデータベースコンテキストイニシャライザーに取り組んでいます。これは、コードファーストモデルとデータベーススキーマの両方を完全に制御したい開発者にとって便利です。見てみな:
EFチームは、この問題を解決するEFの移行機能に取り組んできました。
Scott Guは最近のヨーロッパツアーで、この機能をまもなくリリースする予定であると述べました。息を止めています。
エキサイティングなアップデート:
これは現在、CTPとしてリリースされています:http: //blogs.msdn.com/b/adonet/archive/2011/07/27/code-first-migrations-august-2011-ctp-released.aspx
私のCodeFirstアプリケーションでは、ローカルビルドに本番環境にないことを示すapp.configフラグがあります。私が本番環境にいないときは、データベースを完全に削除して再作成します。私の本番データベースユーザーには、web.config変換が何らかの理由で失われた場合でもデータベースを削除する権限がないため(したがって、EFはデータベースを再作成しようとします)、本番データベースは削除されず、代わりに例外がスローされます。
私のワークフローは次のようになります。
ステップ2は、最新のデータモデルに基づいて新しいクリーンなデータベースを自動的に作成するため、まだ本番環境に対応していない可能性のある開発作業からのアーティファクトがない最新のデータベースがあることを常に知っています。