如何为ASP.net Core配置Entity Framework 6

6
我正在尝试配置一个新项目,使用ASP.net CoreEntity Framework 6。为了能够使用Entity Framework 6,我使用了完整的.net框架。这是以前在MVC中的一个项目,我需要将其迁移到Core。
这是我所做的(我有两个项目,一个是Asp.net Core,另一个是包含一些类和DBContext类class library): 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

 public void ConfigureServices(IServiceCollection services)
        {
         services.AddScoped<MyDBContext>(_ => new LIGDataContext(Configuration.GetConnectionString("MyConnection")));
        }

我将DBContext类单独放在一个类库(.dll)中:

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

但我把这些代码放在我的asp.net Core项目的一些控制器中,现在不确定如何引用DBContext实例... 显然正在请求connString参数,这是我第一次这样做,不确定最好的方法是什么,在Core中不再可用ConfigurationManager,我需要做什么?这是Entity Framework 6而不是Entity Framework Core。

     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
您正在使用 services.AddScoped<MyDBContext>(_ => new LIGDataContext(Configuration.GetConnectionString("MyConnection"))); 配置在 ConfigureServices() 中注入 DbContext。有没有不让 DbContext 通过属性注入到控制器中的原因(您正在实例化它 var _ctx = new MyDBContext();)?我认为这应该可以工作。 - dime2lo
1个回答

0
dime2lo 是正确的,你可以将 DbContext 注入到控制器中。
codepublic class StoreController : Controller
{
    private DefaultDbContext _dbContext = null;
    public StoreController(DefaultDbContext dbContext)
    {
        this._dbContext = dbContext;
        //Do something with this._dbContext ...
    }
}

或者创建一个上下文工厂

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

参考资料:ASP.NET Core和Entity Framework 6入门指南


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接