1

我有以下情况:

模块 A 和 B 的设置存储在 XML 文件中。模块 C 将其设置存储在数据库中(单行表)。现在我想将模块 C 中的设置移动到 A & B 存储各自设置的 XML 文件中。

当我删除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()
    {
        // ...
    }
}
4

1 回答 1

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);
于 2014-06-26T07:11:13.070 回答