string sql = "select * from INFORMATION_SCHEMA.TABLES for xml auto";
using var conn = new SqlConnection(_connectionString);
conn.Open();
using var cmd = new SqlCommand(sql, conn);
string resultXml = (string)cmd.ExecuteScalar();
Console.WriteLine(resultXml);
File.WriteAllText("db schema.xml", resultXml);
使用 INFORMATION_SCHEMA - 这是 ANSI 标准,一组包含数据库信息的视图。使用普通的 sql 查询来获取您需要的信息。
您的任务由最简单的代码解决。
这里的主要困难是编写一个将返回必要数据的 sql 查询。
实体框架在这里没有帮助。要使用它,您必须创建一组与 INFORMATION_SCHEMA 匹配的类。这是可能的,但几乎没有道理。
为什么要保存架构?可能是为了能够使用它来重现具有类似结构的新数据库。
您经常在问题中提到实体框架,因此您使用它。所以,你只需要使用migrations。它们只是为了重现数据库的结构而设计的。
迁移文件已存储在您的项目中,因此无需进一步操作。
当您需要在另一台计算机上重现具有类似结构的数据库时,将使用迁移:应用迁移。
最近,引入了一种使用捆绑包的新方法:引入 DevOps-friendly EF Core Migration Bundles。