遷移

2014-06-25 88 views
1

期間讀取的數據我有以下情形:遷移

模塊A & B具有存儲在XML文件中的設置。模塊C的設置存儲在數據庫中(一行表格)。現在我想將模塊C中的設置移動到XML文件中,其中A & B存儲其各自的設置。

當我刪除設置表中的SettingsC實體時,將在下次遷移時被刪除。

有沒有辦法在遷移過程中讀取表格內容並在刪除表格之前將其寫入XML文件?

例:

public partial class DropModuleCSettings : DbMigration 
{ 
    public override void Up() 
    { 
     // here I would like to read the content of "dbo.SettingsC" 
     DropTable("dbo.SettingsC"); 
    } 

    public override void Down() 
    { 
     // ... 
    } 
} 

回答

1

我不知道有關的時機「當」獲取數據了ModuleC數據庫表的,但你可能要在看:

http://blogs.msdn.com/b/saurabh_singh/archive/2010/05/11/export-sql-table-records-to-xml-form.aspx

基本上:

SELECT * FROM SettingsC FOR XML AUTO 

這會給你在XML文件中的表的內容。

檢索這些信息做線沿線的東西:

using (SqlConnection oCn = new SqlConnection()) 
{ 
    oCn.ConnectionString = @"server=sql-server\cos;integrated security=SSPI;database=daas5"; 
    oCn.Open(); 

    // Create a SQL command object. 
    string strSQL = "SELECT * FROM SettingsC FOR XML AUTO"; 

    SqlCommand myCommand = new SqlCommand(strSQL, oCn); 
    //Read you query into an XmlReader 
    XmlReader reader = myCommand.ExecuteXmlReader();   
} 

一旦你的,你可以很容易地這樣加載到一個XDocument

XDocument doc = XDocument.Load(reader); 

或一個XmlDocument

XmlDocument xdoc = new XmlDocument(); 
xdoc.Load(reader); 
+0

感謝您的輸入,但我如何在遷移期間執行此操作是我的主要問題。 'Sql(「...」)''函數不會返回任何數據... – ChrFin

+0

我已經更新了我的答案,包括如何從SQL中獲取數據作爲XmlDocument。 – d347hm4n

+0

謝謝。沒有想到使用「separte SQL-Connection」並希望我可以使用EF-Connection,但我會嘗試並報告回去...... – ChrFin