/// <summary> /// This method is called when the model for a derived context has been initialized, but /// before the model has been locked down and used to initialize the context. The default /// implementation of this method takes the <see cref="IMappingConfiguration" /> array passed in on construction and /// applies them. /// If no configuration mappings were passed it it does nothing. /// </summary> /// <remarks> /// Typically, this method is called only once when the first instance of a derived context /// is created. The model for that context is then cached and is for all further instances of /// the context in the app domain. This caching can be disabled by setting the ModelCaching /// property on the given ModelBuidler, but note that this can seriously degrade performance. /// More control over caching is provided through use of the DbModelBuilder and DbContextFactory /// classes directly. /// </remarks> /// <param name="modelBuilder">The builder that defines the model for the context being created</param> protected override void OnModelCreating(DbModelBuilder modelBuilder) { if (_databaseFirst) { throw new UnintentionalCodeFirstException(); } _log.Debug("\tOnModelCreating"); if (_mapping != null) { _log.TraceFormat("\t\tMapping : {0}", _mapping.GetType().Name); _mapping.ConfigureModelBuilder(modelBuilder); } base.OnModelCreating(modelBuilder); }