迁移过程中读取数据

本文关键字:数据 读取 过程中 迁移 | 更新日期: 2023-09-27 18:10:25

我有以下场景:

模块A &B将它们的设置存储在XML文件中。模块C将其设置存储在DB(只有一行的表)中。现在我想将设置从模块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()
    {
        // ...
    }
}

迁移过程中读取数据

我不确定何时从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);