Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
•
DbCommand
•
DbConnection
•
DbDataAdapter
•
DbDataReader
•
DbParameter
•
DbTransaction
Каждый поставщик данных, совместимый с .NET Core, содержит класс, производный от
System.Data.Common.DbProviderFactory
DbProviderFactory
public abstract class DbProviderFactory
{
public virtual bool CanCreateDataAdapter { get;};
public virtual bool CanCreateCommandBuilder { get;};
public virtual DbCommand CreateCommand();
public virtual DbCommandBuilder CreateCommandBuilder();
public virtual DbConnection CreateConnection();
public virtual DbConnectionStringBuilder CreateConnectionStringBuilder();
public virtual DbDataAdapter CreateDataAdapter();
public virtual DbParameter CreateParameter();
public virtual DbDataSourceEnumerator CreateDataSourceEnumerator();
}
Чтобы получить производный от
DbProviderFactory
DbProviderFactory
// Получить фабрику для поставщика данных SQL.
DbProviderFactory sqlFactory =
Microsoft.Data.SqlClient.SqlClientFactory.Instance;
Чтобы сделать программу более универсальной, вы можете создать фабрику
DbProviderFactory
DbProviderFactory
appsettings.json
Полный пример фабрики поставщиков данных
В качестве завершенного примера создайте новый проект консольного приложения C# (по имени
DataProviderFactory
AutoLot
DataProviderFactory.exe
Начните с добавления нового элемента
ItemGroup
Microsoft.Extensions.Configuration.Json
System.Data.Common
System.Data.Odbc
System.Data.OleDb
Microsoft.Data.SqlClient
dotnet add DataProviderFactory package Microsoft.Data.SqlClient
dotnet add DataProviderFactory package System.Data.Common
dotnet add DataProviderFactory package System.Data.Odbc
dotnet add DataProviderFactory package System.Data.OleDb
dotnet add DataProviderFactory package Microsoft.Extensions.Configuration.Json
Определите символ условной компиляции PC (в случае применения Windows):
<PropertyGroup>
<DefineConstants>PC</DefineConstants>
</PropertyGroup>
Далее добавьте новый файл по имени
DataProviderEnum.cs
namespace DataProviderFactory
{
// OleDb поддерживается только в Windows, но не в .NET Core.
enum DataProviderEnum
{
SqlServer,
#if PC
OleDb,
#endif
Odbc
}
}
Добавьте в проект новый файл JSON по имени
appsettings.json
{
"ProviderName": "SqlServer",
//"ProviderName": "OleDb",
//"ProviderName": "Odbc",
"SqlServer": {
// Для localdb используйте @"Data Source=(localdb)
// mssqllocaldb;Integrated Security=true;
Initial Catalog=AutoLot"
"ConnectionString": "Data Source=.,5433;User Id=sa;Password=P@ssw0rd;Initial
Catalog=AutoLot"
},
"Odbc": {