我正在尝试配置一个新项目以使用 Entity Framework 6
和 ASP.net Core
,我正在使用完整的 .net
框架,以便能够使用 Entity Framework 6
。这是一个之前在MVC中的项目,我需要将它迁移到Core。
这就是我所做的(我有两个项目,一个 Asp.net Core
和一个包含一些类和 DBContext 类
的类库
>):
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
项目的一些 Controller 中有这段代码,我不确定现在如何引用 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());
}
最佳答案
dime2lo 是对的,你可以将 DbContext 注入(inject) Controller 。
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
关于c# - 如何为 ASP.net Core 配置 Entity Framework 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40516707/