2017-03-18 186 views
5

嗨,我已經在實體框架之上做了一個數據同步項目。 框架在某種程度上是架構獨立的。 我想讓它更容忍模式的變化,即使是當前考慮的重大變化。

實現這個我將必須得到EF遷移引擎內部,將不得不像
實體框架遷移API

add-transformation 


將被檢測的變化和創建的變換生成的命令。

我已經看過EF 6的源代碼,但無法找到合適的地方開始。 任何幫助,將不勝感激。

編輯1: - 答案在評論

  1. 代碼優先方法收到問題
  2. 範圍:
    變化的數據將被遷移因此無需合併更改處理。 我需要的是一種執行像add-transformation這樣的命令的方式,它可以創建一個像新遷移一樣的新轉換。因此,通常可以說,我有一個像

    數據庫模型(域模型)

    A級 { 公衆詮釋一個{獲得;設置;} public int b {get;設置;}}

然後我類改變爲結構

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

然後我運行add-tranformation ClassChangesA
我需要應

1.檢測變化
2的代碼。生成類似遷移類的類。防爆。

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?第二個問題,關於「程度」你的數據同步應用程序應該做什麼?一個。忽略更改(添加字段?添加表?)或b。還要複製新變更(字段或內容)中包含的數據?第三個問題,可以在某人「擴展」數據庫之後重新編譯您的同步應用程序嗎? – bubi

+0

@bubi - 我通過編輯答案回答了你的問題。請看看。 –

回答

1

我相信你正在尋找的命令是附加遷移migration_name 那麼你可以使用命令更新數據庫更新數據庫,這是如何在實體代碼首先遷移工作框架。