[英]How to create Database context object in asp.net mvc identity project?
我使用此命令创建了一个新的ASP.NET项目
dotnet new mvc --auth Individual
它仅生成注册和登录操作。 我还需要为产品模型创建,读取,更新和删除操作。 但我无法创建DatabaseContext实例。 我试图创建一个像这样的对象:
private ApplicationDbContext ctx = new ApplicationDbContext();
它说错误:
没有任何参数对应于'ApplicationDbContext.ApplicationDbContext(DbContextOptions)'[project-name]所需的形式参数'options'
这是ApplicationDbContext.cs文件:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
// Customize the ASP.NET Identity model and override the defaults if needed.
// For example, you can rename the ASP.NET Identity table names and more.
// Add your customizations after calling base.OnModelCreating(builder);
}
}
那么如何创建ApplicationDbContext类的对象呢?
问题是关于创建ApplicationDbContext
的object
。 ApplicationDbContext
类可以在MVC
项目的IdentityModels.cs
文件中找到。
Models
文件夹中的类的自动命名空间是YourProjectName.Models
至于options
你可以在这里阅读:
调用新的DbContext时DbContextOptions会发生什么?
给定连接字符串名称为DefaultConnection
,它可能如下所示:
var options = new DbContextOptionsBuilder<ApplicationDbContext>();
options.UseSqlServer(Configuration.GetConnectionStringSecureValue("DefaultConnection"));
因此,要在代码中生成ApplicationDbContext
对象,您可以简单地使用自动生成的命名空间并生成选项来初始化对象,如下所示:
using YourProjectName.Models; //initialize your .cs file with this
...
var options = new DbContextOptionsBuilder<ApplicationDbContext>();
options.UseSqlServer(Configuration.GetConnectionStringSecureValue("DefaultConnection"));
ApplicationDbContext context = new ApplicationDbContext(options); //somewhere else in the file
然后使用它: context.Users...
或context.YourOtherTableNames.EFMethod...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.