如何为ASP.net Core配置实体框架6
本文关键字:配置 实体 框架 Core net ASP | 更新日期: 2023-09-27 18:17:22
我试图配置一个新项目使用Entity Framework 6
与ASP.net Core
,我使用完整的.net
框架,以便能够使用Entity Framework 6
。这是一个项目,是在MVC之前,我需要迁移到核心。这就是我所做的(我有两个项目,一个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
中不再可用,我需要做什么?这是实体框架6没有实体框架核心..
public class MyController : Controller
{
public ActionResult MyAction()
{
var _ctx = new MyDBContext();
return PartialView(_ctx.FormsiteApplications.Where(f => f.Application).OrderBy(f => f.Title).ToList());
}
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;");
}
参考:Getting Started with ASP. NET Core and Entity Framework 6