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

3489

被折叠的 条评论
为什么被折叠?



