详细信息
我正在尝试创建asp.net core应用程序并使用scaffold-dbcontext生成类。当我运行该应用程序时,它显示了错误。我已经按照stackflow上其他问题的答案处理过相同的问题,但我的问题仍然存在。 问题
MyContext
public partial class MyContext: DbContext
{
public MyContext(DbContextOptions<MyContext> options) : base(options)
{
}
public virtual DbSet<Answer> Answer { get; set; }
public virtual DbSet<Attachment> Attachment { get; set; }
public virtual DbSet<Category> Category { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer(@"Server=.;Database=MyContext;Trusted_Connection=True;");
}
protected override void OnModelCreating(ModelBuilder modelBuilder) { .... }
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddMvc()
.AddJsonOptions(options =>
options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.All);
services.AddDbContext<MyContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
错误
使用configuration调用了AddDbContext,但上下文类型'MyContext'仅声明了一个无参构造函数。这意味着传递给AddDbContext的配置永远不会被使用。如果要向AddDbContext传递configuration,则'MyContext'应该声明一个接受DbContextOptions的构造函数,并将其传递给DbContext的基本构造函数。
MyContext
类吗?你已经清理并重新构建整个解决方案了吗?为什么在你的Startup.cs
中有两个AddMvc()
调用? - ChW