1

EF6を使用してアプリケーションを作成するのに数千時間を費やしていましたが、それに続く構造でEF6フレームワークを別のクラスライブラリレイヤに使用しました。 EF6クラスライブラリプロジェクトを使用します。MVC 6でエンティティフレームワーク6クラスライブラリプロジェクトを使用する

我々が現在直面している問題は、接続文字列で、我々は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"]); 
+0

ファイルを開いて読み込むことができます。または、必要に応じて接続文字列を別の場所に置くこともできます。そこにいる必要はありません。しかし、それが別のライブラリであれば、何も違うはずはありません。 –

答えて

2

オプション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"]); 
    } 
} 
+0

上記のどれも私の仕事ではありません。行を返すためのデータベースへの単純な呼び出しをしたいだけです。私はこの混乱をどうやって理解するのだろうかと思っています。 データベースへの簡単な接続と呼び出し。正しいデータベースを指す接続文字列があり、サーバーエクスプローラーのテーブルが表示されます。私は働いているMVC 5アプリを持っています。 MSとは何ですか?私は他のオペレーティングシステムで実行する必要はありません。私は単純なWebアプリケーションが必要です。 – JustJohn

関連する問題