asp.net-core-mvc - ASP.NET Core MVC - 连接字符串和数据库
问题描述
我会在这个前缀上说我是 .net 核心的新手。尝试访问我的 appsettings.json 文件中的连接字符串时,我感到很惊讶。
我的解决方案有 2 个项目,一个 MVC 项目和一个数据库。在过去使用标准 .net 时,我能够将连接字符串添加到我的 web.config 并从我的数据库中访问它,如下所示:
namespace DataLibrary.DataAccess
{
public static class SqlDataAccess
{
public static string GetConnectionString(string myConnection = "DemoDB")
{
return ConfigurationManager.ConnectionStrings[myConnection].Connectionstring;
}
}
}
“DemoDB”是 web.config 中连接字符串的名称。这不适用于 .net 核心。我想知道是否有人可以一步一步地让我,像我 5 岁一样跟我说话,解释我如何从我的 MVC 项目中的 appsettings.json 文件中获取连接字符串到我的 DataLibrary 中?
提前致谢!
解决方案
据我所知,如果你想在MVC项目中使用数据库,你应该在主项目中将其注册为服务。
更多细节,您可以参考以下代码:
public static class ServiceCollectionExtensions
{
public static IServiceCollection RegisterDataService(this IServiceCollection serviceDescriptors,IConfiguration configure) {
serviceDescriptors.AddDbContext<TestDBContext>(o => o.UseSqlServer(configure.GetConnectionString("ConnectionStringanme")));
return serviceDescriptors;
}
}
然后在主 MVC 项目的 startup.cs 方法中,您可以使用以下代码:
services.RegisterDataServices(Configuration)
最后,您可以将连接字符串添加到 appsettings.json 中,如下所示:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-ASPNETCoreIdentity-AE5A1558-8D92-4DA4-9A53-DDFB0BA30404;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
更多细节,你可以参考这篇文章。
推荐阅读
- javascript - 使用 multer/Angular 上传文件
- flutter - 英雄小部件在转换后是否重建其子部件
- java - 在邮递员中发布外键数据
- python - 我的批量累积实施是否正确?
- javascript - 在 SQLite xp 系统上为奖励积分添加冷却时间
- vue.js - Nuxt 中的日历组件
- parsing - 根据初始字符串变量组织多行文本,每三行或第二行
- php - mysqli::real_connect(): 数据提前结束 (mysqlnd_wireprotocol.c:381),GREET 数据包比预期短 4 个字节
- java - 我可以用 lombok 注释将方法声明为 toString
- java - Thymeleaf 和 Spring Boot 导致 TypeMismatchException