2016-11-09 13 views
3

Entity Framework 6とを使用するように新しいプロジェクトを構成しようとしていますが、Entity Framework 6を使用できるように完全な.netフレームワークを使用しています。これは以前MVCにあったプロジェクトで、コアに移行する必要があります。ASP.netコア用のEntity Framework 6の設定方法

appsettings.json

"Data": { 
    "ConnectionStrings": { 
     "MyConnection": "Server=namedatabase.database.secure.windows.net,1433;Database=database_Name;User ID=blahblah;Password=blahblah;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" 
    } 
    } 

Startup.cs これは(私は2つのプロジェクト、1 Asp.net CoreといくつかのクラスとDBContext classが含まれていclass libraryを持って)私がやったものです

public void ConfigureServices(IServiceCollection services) 
     { 
     services.AddScoped<MyDBContext>(_ => new LIGDataContext(Configuration.GetConnectionString("MyConnection"))); 
     } 
012明らかにされ...

public class MyDBContext: DbContext 
    { 
public MyDBContext(string connString): base(connString) 
     { 
     } 

しかし、私は私のasp.net Coreプロジェクトの一部のコントローラ内でこのコードを持っていると私はDBContextインスタンスを参照する方法がわからないんだけど:

私はclass library(.dll)に分離DBContextクラスを持っていますconnStringパラメータを求めていますが、私がこれをやっているのは初めてです。これを行うにはどの方法が最善の方法であるのかよく分かりません。ConfigurationManagerはもう利用できません。Core何が必要ですか?これは、コントローラにDbContextを注入することができ、

 public class MyController : Controller 
     { 
      public ActionResult MyAction() 
       { 
        var _ctx = new MyDBContext(); 
        return PartialView(_ctx.FormsiteApplications.Where(f => f.Application).OrderBy(f => f.Title).ToList()); 
       } 
+1

コンテキストファクトリを作成.GetConnectionString( "MyConnection")))); DbContextをプロパティを通してControllerに注入させない理由( 'var _ctx = new MyDBContext();')をインスタンス化していますか?私はそれがうまくいくと思います。 – dime2lo

答えて

0

dime2loが正しいとEntity Frameworkの6なしEntity Frameworkのコア..です。

codepublic class StoreController : Controller 
{ 
    private DefaultDbContext _dbContext = null; 
    public StoreController(DefaultDbContext dbContext) 
    { 
     this._dbContext = dbContext; 
     //Do something with this._dbContext ... 
    } 
} 

または ` (_ =>新しいLIGDataContext(コンフィギュレーションをservices.AddScopedで`)あなたは(ConfigureServices `でDbContextの注入を設定している

public class DefaultDbContextFactory : IDbContextFactory<DefaultDbContext>{ 
public DefaultDbContext Create() 
{ 
    return new DefaultDbContext("Server=XXXX ;Database=XXXXX;Trusted_Connection=True;"); 
} 

Reference : Getting Started with ASP.NET Core and Entity Framework 6

関連する問題