如何在没有实体框架的情况下从ASP.NET Core和Angular连接到数据库?
"ConnectionStrings": {
"DefaultParkingConnection": "Server=DESKTOP-CD0M0C3\\SQLEXPRESS;Database=ParkingSystem2;Trusted_Connection=True;MultipleActiveResultSets=true;User ID=sa;Password=P@ssw0rd"
},
如何在Web API控制器中获取连接字符串?
string constr = ConfigurationManager.ConnectionStrings["DefaultParkingConnection"].ConnectionString;
ASP.Net Core的工作方式不同于ASP.Net,因此您需要将定义的连接字符串映射appsettings.json
到要在整个应用程序中访问的类或变量。请尝试以下方法。创建appSettings.json
:
{
"ConnectionStrings": {
"DefaultParkingConnection": "Server=DESKTOP-CD0M0C3\\SQLEXPRESS;Database=ParkingSystem2;Trusted_Connection=True;MultipleActiveResultSets=true;User ID=sa;Password=P@ssw0rd"
}
}
创建一个新类ConnectionStrings.cs
来映射定义在其中的连接字符串appSettings.json
:
using System;
namespace Test
{
public class ConnectionStrings
{
public string DefaultParkingConnection{ get; set; }
}
}
在中Startup.cs
,编写以下代码:
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
this.Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
//Map the configuration
var connectionSection = Configuration.GetSection("ConnectionStrings");
services.Configure<ConnectionStrings>(connectionSection );
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// Configure
}
}
现在在控制器中,您无需创建类的实例即可轻松使用它:
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
namespace Test.Controllers
{
[ApiController]
[Route("api/account")]
public class AccountController : ControllerBase
{
private readonly ConnectionStrings connectionStrings;
public AccountController(IOptions<ConnectionStrings> connectionStrings)
{
this.connectionStrings = connectionStrings.Value;
}
[HttpGet, Route("test")]
public IActionResult Test()
{
return Ok("test");
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句