如何为 ASP.net Core 配置 Entity Framework 6
Posted
技术标签:
【中文标题】如何为 ASP.net Core 配置 Entity Framework 6【英文标题】:How to configure Entity Framework 6 for ASP.net Core 【发布时间】:2017-03-23 20:06:54 【问题描述】:我正在尝试配置一个新项目以使用Entity Framework 6
和ASP.net Core
,我正在使用完整的.net
框架以便能够使用Entity Framework 6
。这是一个之前在 MVC 中的项目,我需要将它迁移到 Core。
这就是我所做的(我有两个项目,一个Asp.net Core
和一个包含一些类的class library
和DBContext class
):
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
类分隔在class library(.dll)
中:
public class MyDBContext: DbContext
public MyDBContext(string connString): base(connString)
但是我在我的asp.net Core
项目的一些控制器中有这段代码,我不确定现在如何引用DBContext
实例......显然是要求connString
参数,这是第一个当我这样做时,我不确定哪种方法是最好的方法,ConfigurationManager
在Core
中不再可用我需要做什么?这是 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());
【问题讨论】:
您正在使用services.AddScoped<MyDBContext>(_ => new LIGDataContext(Configuration.GetConnectionString("MyConnection")));
配置ConfigureServices()
中的DbContext 注入。有什么理由不让 DbContext 通过属性注入控制器(您正在实例化它var _ctx = new MyDBContext();
)?我认为它应该有效。
【参考方案1】:
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;");
Reference : Getting Started with ASP.NET Core and Entity Framework 6
【讨论】:
以上是关于如何为 ASP.net Core 配置 Entity Framework 6的主要内容,如果未能解决你的问题,请参考以下文章
如何为 ASP.NET Core 注册和使用 MediatR 管道处理程序?
如何为 ASP.NET Core 2.2 项目中的子域正确启用 CORS?
如何为 ASP.net/C# 应用程序配置文件值中的值添加与号