2016-09-20 2 views
0
public class ProductConfiguration : EntityTypeConfiguration<Product> 
{ 
    public ProductConfiguration() 
    { 
     Property(p => p.Name).HasColumnName("ProductName"); 
    } 
} 

Ich habe eine Produktkonfiguration von Entity Framework. Ich möchte das durch Reflexion nutzen.EntityTypeConfiguration Eigenschaft Methode von Reflexion

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
     foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies().Where(a => 
         a.GetName().Name != "EntityFramework")) 
       { 
        var configTypes = assembly.GetTypes().Where(t => 
         t.BaseType != null && 
         t.BaseType.IsGenericType && 
         t.BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration<>)); 

        foreach (var configType in configTypes) 
        { 
         if (configType.BaseType == null) continue; 

         ??????Property(p => p.Name).HasColumnName("ProductName"); 
         ?????? 
        } 
       } 
} 
+0

* I durch Reflexion dieses verwenden möchten * - Sie meinen, die Sie hinzufügen möchten Konfigurationen bei 'OnModelCreating' dynamisch? –

+0

Ich habe Post onModelCreating bearbeitet – barteloma

Antwort

0

Nachdem alle Konfigurationen zu finden, die Sie benötigen Instanz von ihnen zu erstellen und diese in modelBuilder.Configurations.

foreach (var configType in configTypes) 
{ 
    if (configType.BaseType == null) continue; 

    dynamic configInstance = Activator.CreateInstance(configType); 
    modelBuilder.Configurations.Add(configInstance); 
} 
Verwandte Themen