2017-03-18 8 views
5

こんにちは私は、エンティティフレームワークの上にデータ同期プロジェクトを作成しました。 フレームワークはある程度はスキーマに依存しません。 私は、現在考慮されている壊れた変更でさえ、スキーマの変更に対してより寛容にしたいと考えています。私はEFの移行エンジン内部で取得する必要がありますし、変更を検出して変換を作成します
エンティティフレームワーク移行API

add-transformation 


のようなコマンドを生成する必要がありますこれを達成する



私はef 6のソースコードを調べましたが、開始するのに適切な場所を見つけることができませんでした。 ご協力いただければ幸いです。

編集1: - コメント

  1. コードファーストアプローチで受け取った質問への答え
  2. 程度:データ内
    変更は、マイグレーションの変更を組み込むので、不要によって処理されます。 私が必要とするのは、add-transformationのようなコマンドを実行して新しい移行のような新しい変換を作成する方法です。だから、私はデータベースモデル(ドメインモデル)を持っていると言うことができます

    クラスA { 公開int a {get; set;} public int b {get;セット;} }

に、私は構造に

class A 
{ 
public int a {get; set;} 
public int b {get; set;} 
public int c {get; set;} 
} 

をクラスを変更した後、私は

1.変更
2を検出しなければならない私が必要add-tranformation ClassChangesA
コードを実行します。マイグレーションクラスのようなクラスを生成します。 Ex。私はあなたが探しているコマンドは、あなたがコマンドに更新データベースを使用してデータベースを更新することができアドオン移行migration_name であると信じてい

class Transformation_112334_ClassChangesA 
{ 
public A Up(OldA model){ 
    //Property C added 
} 
public OldA Down(A model){ 
    //Property C removed 
} 
} 
+0

あなたのアプローチがコードであると仮定すると、MSDNの記事 https://msdn.microsoft.com/en-us/library/jj591621(v=vs.113).aspx – pravs

+0

の最初の質問コードの最初またはDBの最初のアプローチ? 2番目の質問は、あなたのデータの同期アプリがすべきことの「程度」についてです。 a。変更を無視します(フィールドを追加する - テーブルを追加しますか?)。新しい変更(フィールドまたは何?)に含まれるデータも複製しますか? 3番目の質問は、誰かが "エクステント"データベースの後に、あなたの同期アプリケーションを再コンパイルできますか? – bubi

+0

@bubi - 私は答えを編集してurの質問に答えました。親切にそれを見てください。 –

答えて

1

が、これは実体のコード最初の移行を操作する方法でありますフレームワーク。

関連する問題