示例#1
0
 /// <summary>
 /// Applies the specified <see cref="IMappingConfiguration"/>
 /// </summary>
 /// <param name="profile">The <see cref="Profile"/> to configure</param>
 /// <param name="configuration">The <see cref="IMappingConfiguration"/> to apply</param>
 public static void ApplyConfiguration(this Profile profile, IMappingConfiguration configuration)
 {
     foreach (Type configurationType in configuration.GetType()
              .GetInterfaces()
              .Where(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IMappingConfiguration <,>)))
     {
         Type sourceType      = configurationType.GetGenericArguments()[0];
         Type destinationType = configurationType.GetGenericArguments()[1];
         GenericApplyConfigurationMethod.MakeGenericMethod(sourceType, destinationType).Invoke(null, new object[] { profile, configuration });
     }
 }
示例#2
0
 /// <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);
 }