2016-07-14 6 views
0

大きなデータベースに追加するには〜6個の新しいテーブルが必要な小さなアプリケーションを作成しています)。私のアプリケーションは、既存のテーブルやDB構造のいずれにも関心がありません。本当に私の新しいテーブルはすべて新しいスキーマになります。Code-first Entity Frameworkを使用して、非EFアプリケーションで消費される大規模な既存のデータベースに新しいテーブルを追加する

他の人が私の新しいテーブルにアクセスするためのストアドプロシージャを書くので、参照するDDLがなくても幸せであるとは思えません。私はEFの新機能ですが、これらのテーブルには多くのフィールドがあるため、DDLを手動で作成することを避けるための良い選択肢と思われます。

ここで最適なオプションは何ですか?とにかくEFを使用すべきかどうかは疑問に思っていますが、アノテーションを使用してDDLを吐き出す方法と同じですか?私はEFのまったく新しいものなので、マイグレーションなどについて話し始めるならば、少し知識を控えてください!

答えて

0

[OK]を、使用の移行:)

移行は(あなたのモデルのコピーではなく、今それについて気にいけない)あなたのデシベルの「状態」テーブル(__Migrations)を保存します。あなたの "現在の"アプリケーションモデルを "データベース"実装と比較するために使用します(コードに属さないテーブルは無視されます)。一度移行を使用して

は、あなたには、いくつかのグッズを持っている:

  1. あなたが追加するときは、テーブルとそのSQLを修正/削除/「スキーム」のアップグレードを取得し、あなたの初期モデル
  2. のSQLを取得することができます。
  3. SQLを変更 "x"から変更 "y"に移動することもできます。

最初は分かりませんが、少し時間をかけて使用する方法は分かりません。

推奨事項:

  • はInmmediatly初期を追加する "パッケージ" コンソールから

    有効-移行-Project MyDALProjectNameを

  • を移行を追加します。別のPRに

  • をあなたのDALをしてください移行

    追加移行初期-P roject MyDALProjectName

    お知らせ必要とされている__Migrationsの挿入 "

  • は楽しみのためのスクリプト(scriptパラメータに注意してください)

    アップデート - データベース-Project MyDALProjectName -scriptを取得します"。

  • データベースに対してスクリプトを実行するのと同じ初期移行「Update-Database -Project MyDALProjectName」を適用します。あなたは、モデルの変更がある場合は、次のようにここから

、いつも(あなたのアプリは、あなたがするまで実行を拒否します):アドオンの移行MigrationNameWithDetailsOnWhatYoDid -Project MyDALProjectName

  • 更新

    • -Database -Project MyDALProjectName
    • 運用データベースを更新するには 更新データベースプロジェクトMyDALProjectName -SourceMigration TheMigrationIWantToApplyFrom -TargetMigrations ToMigrationNameUssuallyLatestOne -Script

    いくつかのサイドノート:

    • __Migrationsテーブルは右、 "修正" キーのリストを持っていますか?ここでデータベースの最後に適用された移行を確認できます。
    • プロジェクトの "Migrations"フォルダには、テーブルと一致するクラスのリストがあります。彼らは変更を生成するC#コードを持っています。
    • "Migrations"フォルダで、テーブルと移行クラスの両方を削除して移行をリセットできます。一度生産に注意してください。
    • あなたが移行を元に戻すことができ、私はあなたが問題に直面したときにすることを必要と...

    それらはあなたが前進するのを助ける重要なヒントです。

    チェックhttp://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application

  • 関連する問題