[英]How can I connect to a database in ASP.NET Core without Entity Framework?
How can I connect to a database from ASP.NET Core and Angular without Entity Framework?如何在没有实体框架的情况下从 ASP.NET Core 和 Angular 连接到数据库?
"ConnectionStrings": {
"DefaultParkingConnection": "Server=DESKTOP-CD0M0C3\\SQLEXPRESS;Database=ParkingSystem2;Trusted_Connection=True;MultipleActiveResultSets=true;User ID=sa;Password=P@ssw0rd"
},
How can I get connection string in Web API controller?如何在 Web API controller 中获取连接字符串?
string constr = ConfigurationManager.ConnectionStrings["DefaultParkingConnection"].ConnectionString;
You could inject IConfiguration
in api controller:您可以在 api controller 中注入IConfiguration
:
public class ValuesController : Controller
{
public IConfiguration _configuration { get; }
public ValuesController(IConfiguration configuration)
{
_configuration = configuration;
string constr = _configuration.GetConnectionString("DefaultParkingConnection");
}
}
ASP.Net Core works different than ASP.Net, so you need to map the connection strings defined in appsettings.json
to a class or variable to be accessed throughout the application. ASP.Net Core 的工作方式与 ASP.Net 不同,因此您需要将 appsettings.json 中定义的连接字符串appsettings.json
转换为 class 或要在整个应用程序中访问的变量。 Try the following approach.尝试以下方法。 Create appSettings.json
:创建appSettings.json
:
{
"ConnectionStrings": {
"DefaultParkingConnection": "Server=DESKTOP-CD0M0C3\\SQLEXPRESS;Database=ParkingSystem2;Trusted_Connection=True;MultipleActiveResultSets=true;User ID=sa;Password=P@ssw0rd"
}
}
Create a new class ConnectionStrings.cs
to map the connection strings defined in appSettings.json
to it:创建一个新的 class ConnectionStrings.cs
到 map appSettings.json
中定义的连接字符串给它:
using System;
namespace Test
{
public class ConnectionStrings
{
public string DefaultParkingConnection{ get; set; }
}
}
In Startup.cs
, write the following code:在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
}
}
Now in controllers, you can easily use it without creating the instance of the class:现在在控制器中,您无需创建 class 实例即可轻松使用它:
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");
}
}
}
Microsoft has just release sqlclient for asp.net core for access to ado.net.微软刚刚发布了用于 asp.net 内核的 sqlclient,用于访问 ado.net。
from the packagemanager来自包管理器
Install-Package Microsoft.Data.SqlClient -Version 1.0.19269.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.