Dot-Net

從 MS SQL 數據庫獲取 XML 架構

  • September 16, 2015

是否可以使用 .Net 和 C# 以程式方式生成數據庫的 XML 模式?我想研究 NDbUnit,但對於大型數據庫,手動製作 Schema 真的不可行嗎?

是否可以從數據庫生成 XML 模式?

可以肯定的是,XMLSpy可以從數據庫生成 XML Schema。

還有另一種方法,雖然我從未測試過:

create table Person
(
Age int not NULL check( Age > 0) ,
Height numeric(10,2) not NULL check( Height > 5),
Gender varchar(5) not null check( Gender in ('M', 'F', 'O')),
BirthDate datetime null,
)

DECLARE @schema xml
SET @schema = (SELECT * FROM Person FOR XML AUTO, ELEMENTS, XMLSCHEMA('PersonSchema'))
select @schema

我可以這樣做:

DataSet results = new DataSet();

SqlCommand command = new SqlCommand("SELECT * FROM table", new SqlConnection(connectionString));

SqlDataAdapter sqlAdapter = new SqlDataAdapter(command);

sqlAdapter.FillSchema(results, SchemaType.Mapped);//Fills dataset with schema from query
results.WriteXmlSchema(mySchema);

問題是,我如何調整這種方法以便它可以用於不確定數量的表?沒有建立一個字元串雖然不是很理想的連接!

引用自:https://stackoverflow.com/questions/298660