c# - tipos - AddDbContext fue llamado con la configuración, pero el tipo de contexto ''MyContext'' solo declara un constructor sin parámetros?
llamar una clase en c# (1)
Como lo dijo el error, si configura su MyContext
través de AddDbContext
entonces también debe agregar un constructor que reciba un parámetro de tipo DbContextOptions<MyContext>
en su clase MyContext
como se muestra a continuación
public MyContext(DbContextOptions<MyContext> options)
: base(options)
{ }
Si no lo hace, ASP.Net Core no podrá inyectar la configuración que estableció con AddDbContext
.
En la siguiente aplicación de consola (.Net core 2.0), scaffold-dbcontext
creó el siguiente DbContext
public partial class MyContext : DbContext
{
public virtual DbSet<Tables> Tables { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlServer(Program.Conn); }
}
protected override void OnModelCreating(ModelBuilder modelBuilder) { .... }
}
En el Main () ( static void Main(string[] args)
), el siguiente código
var services = new ServiceCollection();
var conn = configuration.GetConnectionString("MySource");
services.AddDbContext<MyContext>(o => o.UseSqlServer(conn)); // Error
tiene el siguiente error en tiempo de ejecución?
Se llamó a AddDbContext con la configuración, pero el tipo de contexto ''MyContext'' solo declara un constructor sin parámetros. Esto significa que la configuración pasada a AddDbContext nunca se utilizará