Библиотека схемы базы данных - PullRequest
1 голос
/ 13 февраля 2011

Существует ли библиотека для .NET, которая позволяет пользователю манипулировать схемой базы данных из кода, используя один и тот же код для разных поставщиков БД?

Я создал свою собственную служебную библиотеку, которая позволяет мне создавать или изменять таблицы или столбцы, но мне интересно, существует ли такая библиотека уже. Тот, который также включает в себя ограничения и индексы.

Я использую что-то вроде этого:

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");

Конечно, это не жестко закодировано. Я хочу добавить в свое приложение функцию, позволяющую пользователям указывать свои собственные объекты, которые могут храниться в базе данных, а затем мое приложение будет использовать библиотеку для создания базовой таблицы базы данных.

Ответы [ 2 ]

1 голос
/ 16 февраля 2011

Я знаю только , как запрашивать схему базы данных из кода, используя один и тот же код для разных поставщиков БД.

Начиная с dotnet 2.0 большинство поставщиков dotnet реализуют System.Data.Common.DbConnection .

С помощью функции System.Data.Common.DbConnection.GetSchema() (без параметра) вы можете спросить у провайдера, какую коллекцию он поддерживает (таблицы, представления, хранимые процедуры, .....). Их можно использовать сGetSchema(collectionName), чтобы получить больше деталей.Среди подробностей даже поддерживаются типы данных и регулярные выражения для проверки имен полей.

Вы также можете взглянуть на источник проекта MyGeneration .Его движок mymeta создает общий API-интерфейс вокруг различных поставщиков баз данных.

NHibernate также должен иметь что-то вроде общего поставщика баз данных.Но я еще не посмотрел его исходный код.

0 голосов
/ 13 февраля 2011

Вы можете использовать объекты управления SQL Server http://msdn.microsoft.com/en-us/library/ms162169.aspx

Если это SQL Server, с которым вы работаете, конечно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...