protected void RegistraDbMapsDinamicamente(DbModelBuilder modelBuilder)
{
var registerMethod = modelBuilder.Configurations.GetType().GetMethods().Single(m => m.Name == "Add" && m.GetGenericArguments().Any(a => a.Name == "TEntityType"));
//// recupera todos os DbMappings que heram de EntityTypeConfiguration.
var dbMapTypes = from t in Assembly.GetExecutingAssembly().GetTypes()
where t.BaseType.IsGenericType && t.BaseType.GetGenericTypeDefinition().IsAssignableFrom(typeof(EntityTypeConfiguration<>))
select t;
// registra os dbMaps encontrados.
foreach(var dbMapType in dbMapTypes) {
var entityType = dbMapType.BaseType.GenericTypeArguments.Single();
var typeConfig = Activator.CreateInstance(dbMapType);
registerMethod.MakeGenericMethod(new [] {entityType }).Invoke(modelBuilder.Configurations, new[] { typeConfig });
}
}
0100101001100101011100110111010101110011010000110111001001101001011100110111010001101111
quarta-feira, 6 de novembro de 2013
Entity Framework : registrando todos os EntityTypeConfigurations
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário