.net core怎样用配置来实现链接数据库并且搭配DBhelp来实现
时间: 2024-02-01 17:14:23 浏览: 119
c#图书管理系统源代码.doc
4星 · 用户满意度95%
在 .NET Core 中,可以使用配置文件来存储数据库连接字符串和其他相关的配置信息。首先,在项目中添加一个 `appsettings.json` 文件,并添加以下内容:
```json
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=myserver;Initial Catalog=mydatabase;User ID=myuser;Password=mypassword;"
}
}
```
上述代码中,我们定义了一个名为 `DefaultConnection` 的数据库连接字符串。接下来,在 `Startup.cs` 文件中,添加以下代码:
```csharp
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<ConnectionStringOptions>(Configuration.GetSection("ConnectionStrings"));
services.AddSingleton<IDbConnectionFactory, DbConnectionFactory>();
services.AddScoped<IDbHelper, DbHelper>();
}
}
```
在上述代码中,我们首先注入 `IConfiguration` 接口,并将其保存在 `Configuration` 属性中。然后,我们使用 `services.Configure` 方法从配置文件中读取 `ConnectionStrings` 配置节点,并将其绑定到名为 `ConnectionStringOptions` 的选项类上。接下来,我们注册一个 `IDbConnectionFactory` 的实现类 `DbConnectionFactory` 和一个 `IDbHelper` 的实现类 `DbHelper`,用于连接数据库和执行SQL语句。
在 `DbConnectionFactory` 类中,可以使用以下代码来读取配置文件中的连接字符串:
```csharp
using System.Data;
using Microsoft.Extensions.Options;
public class DbConnectionFactory : IDbConnectionFactory
{
private readonly string _connectionString;
public DbConnectionFactory(IOptions<ConnectionStringOptions> options)
{
_connectionString = options.Value.DefaultConnection;
}
public IDbConnection CreateConnection()
{
return new SqlConnection(_connectionString);
}
}
```
在上述代码中,我们使用 `IOptions<ConnectionStringOptions>` 来获取配置文件中的 `DefaultConnection` 连接字符串,并将其保存在 `_connectionString` 字段中。然后,我们实现 `IDbConnectionFactory` 接口,并在 `CreateConnection` 方法中返回一个新的 `SqlConnection` 实例。
最后,在 `DbHelper` 类中,可以使用以下代码来执行 SQL 语句:
```csharp
using System.Collections.Generic;
using System.Data;
using Dapper;
public class DbHelper : IDbHelper
{
private readonly IDbConnectionFactory _connectionFactory;
public DbHelper(IDbConnectionFactory connectionFactory)
{
_connectionFactory = connectionFactory;
}
public IEnumerable<T> Query<T>(string sql, object parameters = null)
{
using (var connection = _connectionFactory.CreateConnection())
{
return connection.Query<T>(sql, parameters);
}
}
public int Execute(string sql, object parameters = null)
{
using (var connection = _connectionFactory.CreateConnection())
{
return connection.Execute(sql, parameters);
}
}
}
```
在上述代码中,我们使用 `IDbConnectionFactory` 接口来创建一个 `SqlConnection` 实例,然后使用 Dapper 执行 SQL 查询和更新操作。
至此,我们就可以使用配置文件来实现链接数据库并且搭配 DBhelp 来实现了。
阅读全文