If we recap on how we have configured the database context, the auto-generated code had a hardcoded connection string used for configuration. To avoid it, we should have a mechanism to pass on the database context options to the DbContext base class; let's see how to do it:
publicpartialclassMasteringEFCoreDbFirstContext : DbContext { publicvirtualDbSet<Blog> Blog { get; set; } publicvirtualDbSet<Post> Post { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { // Move this connection string to config file later optionsBuilder.UseSqlServer(@"Server= (localdb)\mssqllocaldb;Database=MasteringEFCoreDbFirst; Trusted_Connection=True;"); } }
Also include a constructor for the MasteringEFCoreDbFirstContext class, which will initialize the DbContext through dependency injection from the Startup class:
public MasteringEFCoreDbFirstContext( DbContextOptions<MasteringEFCoreDbFirstContext> options) : base(options) { }
We have seen how to pass on the options to the database context base class, now we will see how the options were configured with a connection string.