是否有任何.NET库允许用户使用不同DB提供程序的相同代码从代码操作数据库模式?
我构建了自己的实用程序库,它允许我创建或修改表或列,但我想知道是否已经有这样的库。一个还包括约束和索引的。
我使用的是这样的东西:
DBManager db = new DBManager(connString);
DBTable persons = new DBTable("Persons");
orders.Columns.Add(new DBColumn("Name", DBType.Varchar, 100);
orders.Columns.Add(new DBColumn("Birthday", DBType.Date);
db.CreateTable(persons);
db.AddColumn("Persons", new DBColumn("CityID",DBType.Int);
db.DropColumn("Persons", "Birthday");当然,这不是硬编码的。我想向我的应用程序添加一个功能,允许用户指定他们自己的实体,这些实体可以存储在数据库中,然后我的应用程序将使用该库来创建底层数据库表。
发布于 2011-02-17 03:18:59
我只知道如何在不同的DB提供程序中使用相同的代码来查询数据库模式。
从DotNet2.0开始,大多数dotnet都实现了System.Data.Common.DbConnection。
使用System.Data.Common.DbConnection.GetSchema()函数(不带参数),您可以询问提供者它支持哪种collectionNames (表、视图、存储过程……)这些可以与GetSchema(collectionName)一起使用,以获取更多详细信息。在这些细节中,甚至还支持数据类型和正则表达式来验证字段名。
您还可以查看。它的mymeta引擎围绕不同的数据库提供者构建了一个通用的api。
NHibernate也必须有类似于公共数据库提供程序的东西。但是我还没有看过它的源代码。
发布于 2011-02-13 17:38:04
您可以使用SQL Server管理对象http://msdn.microsoft.com/en-us/library/ms162169.aspx
当然,如果您使用的是SQL Server ...
https://stackoverflow.com/questions/4983411
复制相似问题