我有以下情况:
模块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()
{
// ...
}
}
答案 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);