是否可以使用 .Net 和 C# 以编程方式生成数据库的 XML 模式?我想研究 NDbUnit,但对于大型数据库,手动制作 Schema 真的不可行吗?
Damien
问问题
20343 次
3 回答
26
是否可以从数据库生成 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
于 2008-11-18T14:24:39.670 回答
2
我可以这样做:
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);
问题是,我如何调整这种方法以便它可以用于不确定数量的表?没有建立一个字符串虽然不是很理想的连接!
于 2008-11-18T14:44:03.407 回答
-1
使用 MyGeneration 的 typed-dataset-template 自动生成 XSD ( http://www.mygenrationssoftware.com )。它是免费的 OSS,而且效果很好。此外,NDbUnit 团队目前正在开发 NDbUnit 的附加工具,该工具不仅可以从数据库中提取模式,还可以编辑随附 XML 数据集中包含的测试数据。此工具的预计到达时间约为 7 月中旬。
于 2009-06-07T11:11:31.660 回答