C# 迁移期间读取数据

C# 迁移期间读取数据,c#,entity-framework,entity-framework-6.1,C#,Entity Framework,Entity Framework 6.1,我有以下情况: 模块A和B的设置存储在XML文件中。模块C的设置存储在DB中(一行表)。现在,我想将设置从模块C移到XML文件中,A&B在其中存储各自的设置 删除设置表中的SettingsC实体时,将在下次迁移时删除 是否有方法在迁移过程中读取表内容,并在删除表之前将其写入XML文件 示例: public partial class DropModuleCSettings : DbMigration { public override void Up() { //

我有以下情况:

模块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数据库表中获取数据的时间,但您可能会看到:

基本上:

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);
或XML文档

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

感谢您的输入,但是在迁移过程中如何执行此操作是我面临的主要问题。
Sql(“…”)
函数不返回任何数据…我已经更新了答案,包括如何将数据作为XmlDocument从Sql中取出。谢谢。我没有想到使用“separte SQL连接”,希望我可以使用EF连接,但我会尝试一下,并报告回来……您可能可以重用现有连接,只需创建一个新命令,然后调用ExecuteXmlReader