.net core 使用Enterprise Library连接数据库

文章介绍了如何在.NETCore6环境中使用EnterpriseLibrary,包括通过NuGet安装包,配置appsettings.json中的数据库连接字符串,在Startup.cs或Program.cs中配置EnterpriseLibrary,以及如何在服务中注入Database对象来执行SQL查询。

由于普通的Enterprise Library只能用于.net4及以下所以在现在.net 6的环境下在.net core中使用Enterprise Library的操作就有所不同。

1.安装Enterprise Library NuGet包

在Visual Studio中打开项目,右键单击项目并选择“管理NuGet程序包”。在NuGet程序包管理器中搜索“EnterpriseLibrary.Data.Core”并安装它。

2.配置数据库连接字符串

在appsettings.json文件中添加数据库连接字符串。例如:

{
  "ConnectionStrings": {
    "MyDatabase": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
  }
}

3.配置Enterprise Library

在Startup.cs文件中添加以下代码:

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Practices.EnterpriseLibrary.Data;

public void ConfigureServices(IServiceCollection services)
{
    IConfiguration config = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .Build();

    services.AddSingleton(config);

    var connectionString = config.GetConnectionString("MyDatabase");
    var dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient");
    var database = new DatabaseProviderFactory(dbProviderFactory).Create(connectionString);

    services.AddSingleton(database);
}

如果是 .NET Core 2.x 或更高版本,那么可以在 Program.cs 文件中配置 Enterprise Library 连接数据库。

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;

namespace MyWebApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = CreateWebHostBuilder(args);
            var host = builder.Build();

            // 获取配置文件
            var config = host.Services.GetService(typeof(IConfiguration)) as IConfiguration;

            // 获取数据库连接字符串
            var connectionString = config.GetConnectionString("MyDatabase");

            // 配置 Enterprise Library 数据库连接
            var database = new SqlDatabase(connectionString);

            // 注册数据库连接到服务容器中
            host.Services.AddSingleton(database);

            host.Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                    logging.AddConsole();
                })
                .UseStartup<Startup>();
    }
}

在上面的示例中,我们首先获取了配置文件,然后从配置文件中获取了数据库连接字符串。接下来,我们使用 Enterprise Library 创建了一个数据库连接,并将其注册到服务容器中。最后,我们使用 UseStartup<Startup>() 方法指定了 Startup 类,以便在应用程序启动时执行 Startup.ConfigureServices 方法。

请注意,如果您使用的是 .NET Core 1.x,那么您需要手动创建 Startup.cs 文件,并在其中配置 Enterprise Library 连接数据库。以下是一个示例

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;

namespace MyWebApp
{
    public class Startup
    {
        public IConfiguration Configuration { get; }

        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public void ConfigureServices(IServiceCollection services)
        {
            // 获取数据库连接字符串
            var connectionString = Configuration.GetConnectionString("MyDatabase");

            // 配置 Enterprise Library 数据库连接
            var database = new SqlDatabase(connectionString);

            // 注册数据库连接到服务容器中
            services.AddSingleton(database);
        }
    }
}

 

4.使用Enterprise Library连接数据库

在需要连接数据库的类中注入Database对象,并使用它执行SQL查询。例如:

using Microsoft.Practices.EnterpriseLibrary.Data;

public class MyService
{
    private readonly Database _database;

    public MyService(Database database)
    {
        _database = database;
    }

    public void DoSomething()
    {
        var sqlCommand = _database.GetSqlStringCommand("SELECT * FROM MyTable");
        var dataReader = _database.ExecuteReader(sqlCommand);

        // Process dataReader
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dis_rupt1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值