迁移期间读取数据

时间:2014-06-25 15:11:03

标签: c# entity-framework entity-framework-6.1

我有以下情况:

模块A& B将其设置存储在XML文件中。模块C将其设置存储在DB中(具有一行的表)。现在我想将模块C中的设置移动到A& A的XML文件中。 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 个答案:

答案 0 :(得分: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);