Получение схемы базы данных с помощью блока доступа к данным корпоративной библиотеки

Я новичок в корпоративной библиотечной структуре. Есть ли способ получить схему базы данных, аналогичную методу sqlConnection.GetSchema () в корпоративной библиотеке.

Любая помощь будет принята с благодарностью.

Спасибо шиши


person shishi    schedule 30.07.2013    source источник


Ответы (1)


Я не думаю, что в блоке есть оболочка для этой функциональности. Вы можете использовать метод DbConnection.GetSchema (), получив DbConnection из базы данных:

Database db = DatabaseFactory.CreateDatabase();
DbConnection conn = db.CreateConnection();
DataTable dt = conn.GetSchema();
person Randy supports Monica    schedule 30.07.2013
comment
Спасибо Tuzo за быстрый ответ. Есть ли способ получить хранимую процедуру из conn.GetSchema (), то есть conn.GetSchema (Tables) перечисляет все таблицы, что-то похожее на то, что мне нужно получить для хранимой процедуры. Вы что-нибудь об этом знаете ?? Любая помощь будет оценена по достоинству. - person shishi; 30.07.2013
comment
Вы ищете: conn.GetSchema("Procedures"); и conn.GetSchema("ProcedureParameters");? - person Randy supports Monica; 30.07.2013
comment
@Tuzo есть ли способ узнать, какова схема результатов хранимой процедуры. Я имею в виду, что если хранимая процедура (называемая getemployeesalary) получает идентификатор сотрудника из одной таблицы, его имя из другой и его зарплату из другой, получите тип данных для каждого столбца (например, varchar (15) для идентификатора сотрудника, varchar (20) на зарплату и т. Д.)? Этого недостаточно, чтобы получить тип данных (строку), мне нужно знать точное ограничение символов столбца в базе данных. - person n00b; 21.02.2014
comment
@ n00b, вы можете выполнить хранимую процедуру и опросить DataReader, чтобы получить всю информацию о столбце. См. Пример Как получить схему столбца с помощью метода DataReader GetSchemaTable и Visual C # .NET. . - person Randy supports Monica; 21.02.2014
comment
Вы также можете использовать этот подход с EntLib: var reader = db.ExecuteReader(CommandType.StoredProcedure, "Test"); var schemaTable = reader.GetSchemaTable();, а затем перечислить результаты точно так же, как в примере. - person Randy supports Monica; 21.02.2014