【问题标题】:Using Entity Framework 6 class library project with MVC 6将 Entity Framework 6 类库项目与 MVC 6 一起使用
【发布时间】:2016-05-02 04:55:31
【问题描述】:

我们花费数千小时使用 EF6 创建应用程序,并且我们遵循的结构使用 EF6 框架到一个单独的类库层,我们正在尝试切换到 MVC 6 但仍想使用 EF6 类库项目。

我们目前面临的问题是连接字符串,我们尝试在applicationsettings.json 中添加连接字符串,然后相应地更新Startup.cs 文件,如类似帖子How to Use Entity Framework 6.x in Asp.Net 5 (MVC 6) 中所建议的那样

public class MyContext : DbContext {
  public MyContext(string connectionString) : base(connectionString) {
  }
}

var context = new MyContext("myConnectionString");

但似乎没有任何效果,不确定如何在我的 .net 4.6 类库项目中使用以下行或如何访问 applicationsettings.json 文件?

IConfiguration configuration = new 

Configuration().AddJsonFile("config.json");
var connectionString = configuration["Data:DefaultConnection:ConnectionString"]);

【问题讨论】:

  • 您可以打开文件并读入。或者如果有帮助,您可以将连接字符串放在其他地方。它不必在那里。但是,如果它是一个单独的库,则应该没有什么不同。

标签: c# entity-framework entity-framework-6 asp.net-core-mvc connection-string


【解决方案1】:

选项 1

public class MyContext : DbContext
{
    public MyContext()
        : base(new Configuration().AddJsonFile("config.json")["Data:DefaultConnection:ConnectionString"]);
    {
    }
{

选项 2

public class MyContext : DbContext
{
    static readonly string ConnectionString;
    static MyContext()
    {
        IConfiguration configuration = new Configuration().AddJsonFile("config.json");
        ConnectionString = configuration["Data:DefaultConnection:ConnectionString"]);
    }

    public MyContext()
        : base(ConnectionString);
    {
    }
}

选项 3

public class MyContext : DbContext
{
    public MyContext(string connectionString)
        : base(connectionString);
    {
    }
}


public static class ContextFactory
{
    static readonly IConfiguration Configuration;
    static ContextFactory()
    {
        Configuration = new Configuration().AddJsonFile("config.json");
    }

    public static MyContext CreateMyContext()
    {
        return new MyContext(Configuration["Data:DefaultConnection:ConnectionString"]);
    }
}

【讨论】:

  • 以上都不适合我;只想对数据库进行简单调用以返回行;我想知道如何理解这种混乱。简单的连接和调用数据库。我有指向正确数据库的连接字符串,在服务器资源管理器中显示表。我有正在运行的 MVC 5 应用程序。 MS在做什么?我不需要在其他操作系统上运行。我只需要一个简单的网络应用程序。
猜你喜欢
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 2016-01-15
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
相关资源
最近更新 更多