迁移过程中读取数据
本文关键字:数据 读取 过程中 迁移 | 更新日期: 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);