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

私はエンティティフレームワークの製品構成を持っています。私はこれを反射によって使用したい。リフレクションによるEntityTypeConfigurationプロパティメソッド

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

を私は反射することで、これを使用したい* * - もしかして、あなたが追加したいです'OnModelCreating'の設定は動的ですか? –

+0

私はポストonModelCreatingを編集しました – barteloma

答えて

0

は、すべての構成を見つけた後、あなたはそれらのをインスタンスを作成し、modelBuilder.Configurationsにそれらを追加する必要があります。

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

    dynamic configInstance = Activator.CreateInstance(configType); 
    modelBuilder.Configurations.Add(configInstance); 
} 
関連する問題