C# 在.Net核心应用程序中设置数据库连接

C# 在.Net核心应用程序中设置数据库连接,c#,asp.net,asp.net-web-api,asp.net-core,C#,Asp.net,Asp.net Web Api,Asp.net Core,我正在努力寻找有关如何在ASP.NETCore中设置数据库连接字符串的资源。我已将连接字符串添加到下面的appsettings.json文件中: { "ConnectionStrings": { "MTDatabase": "Server=ss-demo-7-sep112;Database=MTDB;Trusted_Connection=True;" } } 但是我需要找到一种方法来访问我的通用存储库中的这个连接字符串。它位于我的.net核心应用程序的一个单独项目中,其中包含所

我正在努力寻找有关如何在ASP.NETCore中设置数据库连接字符串的资源。我已将连接字符串添加到下面的appsettings.json文件中:

{
  "ConnectionStrings": {
    "MTDatabase": "Server=ss-demo-7-sep112;Database=MTDB;Trusted_Connection=True;"
  }
}
但是我需要找到一种方法来访问我的通用存储库中的这个连接字符串。它位于我的.net核心应用程序的一个单独项目中,其中包含所有数据访问层内容。下面是我试图获取连接字符串的通用存储库

using System.Text;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Configuration;
using System.Data.Entity.Core.Objects;

namespace HaldanMT.DAL
{
    public class GenericRepository<T> : IDisposable, IRepository<T> where T : class, new()
    {

        protected ObjectContext _context;
        protected ObjectSet<T> _objectSet { get; set; }

        public GenericRepository(string connectionName = "MTDatabase")
        {
            _context = new ObjectContext(ConfigurationManager.ConnectionStrings[connectionName].ConnectionString);
            _objectSet = _context.CreateObjectSet<T>();
        }
    }
}
使用System.Text;
使用System.Data.Entity;
使用System.Data.Entity.Infrastructure;
使用系统配置;
使用System.Data.Entity.Core.Objects;
名称空间HaldanMT.DAL
{
公共类GenericRepository:IDisposable,IRepository,其中T:class,new()
{
受保护的ObjectContext\u上下文;
受保护的对象集\u对象集{get;set;}
公共GenericRepository(string connectionName=“MTDatabase”)
{
_上下文=新的ObjectContext(ConfigurationManager.ConnectionString[connectionName].ConnectionString);
_objectSet=_context.CreateObjectSet();
}
}
}
另外,我已经在我的.net核心项目中提到了这个DAL项目。尝试连接到数据库时项目失败,异常为
System。NullReferenceException
对象引用未设置为
连接字符串的对象实例

非常感谢您的帮助。

这是提到使用JSON作为连接字符串的链接。 会是这样的

Configuration.GetConnectionString("ConnectionStrings")).

只需按照本教程操作即可。

您是要设置EF6还是EF Core?上面的代码看起来像ASP.NET 4.5/EF6。另外,您的目标是.NET核心还是整个.NET框架上的ASP.NET核心?这是一个巨大的差别。NET Core和.NET Framework是运行时,ASP.NET Core只是一个webstack,在两者上都运行。但EF6仅在完整的.NET Framework上运行