我使用此命令
创建了一个新的ASP.NET项目dotnet new mvc --auth Individual
它仅生成注册和登录操作。我还需要为产品模型创建,读取,更新和删除操作。但我无法创建DatabaseContext实例。我试图创建一个像这样的对象:
private ApplicationDbContext ctx = new ApplicationDbContext();
它说错误:
没有任何论据符合所要求的形式 参数'选项'的 ' ApplicationDbContext.ApplicationDbContext(DbContextOptions)' [项目名称]
这是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类的对象?
答案 0 :(得分:0)
问题是如何创建object
的{{1}}。可以在ApplicationDbContext
项目的ApplicationDbContext
文件中找到IdentityModels.cs
类。
MVC
文件夹中的类的自动命名空间为Models
关于YourProjectName.Models
的内容,您可以在此处阅读:
What goes into DbContextOptions when invoking a new DbContext?
鉴于您的连接字符串名称为options
,它可能是这样的:
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...