【发布时间】:2020-10-11 15:29:46
【问题描述】:
我正在构建一个 ASP.NET Web API 应用程序,但遇到了一个问题...:/
我有 appsettings.json 来配置 mysql 连接:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"CoinConnection": "server=127.0.0.1;user id=root;password=root;port=3306;database=coin_db;Allow User Variables=True;",
"UserConnection": "server=127.0.0.1;user id=root;password=root;port=3306;database=user_db;Allow User Variables=True;"
}
}
我有Startup.cs来执行连接mysql的服务:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace WebApplication2
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<AppDb>(_ => new AppDb(Configuration["ConnectionStrings:CoinConnection"]));
services.AddControllers();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}
我有 AppDb.cs 来接收字符串并连接到 mysql 中的数据库 coin_db:
using System;
using MySqlConnector;
namespace WebApplication2
{
public class AppDb : IDisposable
{
public MySqlConnection Connection { get; }
public AppDb(string connectionString)
{
Connection = new MySqlConnection(connectionString);
}
public void Dispose() => Connection.Dispose();
}
}
我不知道如何才能连接第二个数据库(user_db)...我已经尝试了所有方法,但我不知道该怎么做。
【问题讨论】:
-
您可以简单地拥有两个类,每个类连接到不同的数据库。我肯定会在每次使用后立即处理连接,而不是在处理类时。
标签: c# mysql .net asp.net-web-api