簡體   English   中英

在MVC 6中使用Entity Framework 6類庫項目

[英]Using Entity Framework 6 class library project with MVC 6

我們花了數千小時來使用EF6創建應用程序,並且遵循的結構將EF6框架使用到了一個單獨的類庫層中,我們試圖切換到MVC 6,但仍想使用EF6類庫項目。

我們當前面臨的問題是連接字符串,我們嘗試將連接字符串添加到applicationsettings.json ,然后相應地更新了Startup.cs文件,如類似文章如何在Asp.Net 5中使用Entity Framework 6.x中所建議的那樣(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"]);

選項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"]);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM