首页 > 解决方案 > 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 中?

提前致谢!

标签: asp.net-core-mvc

解决方案


据我所知,如果你想在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": "*"
}

更多细节,你可以参考这篇文章


推荐阅读