У меня есть одно ClassMapping, и я хочу создать несколько физических таблиц, которые не известны во время компиляции.Например, я хочу использовать Table1, Table2, Table3 и т. Д. Из одного класса Map.
Я попробовал следующий код, но преобразователь модели добавляет только один класс Map, и он снова обновляет предыдущую карту классов.Не добавление другой карты классов.
private static ISessionFactory CreateSessionFactory()
{
var cfg = new Configuration();
cfg.CurrentSessionContext<ThreadStaticSessionContext>();
cfg.Configure();
var mapper = new ModelMapper();
mapper.AddMappings(typeof(ClientMap).Assembly.GetTypes());
AddDynamicTables(mapper);
cfg.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
BuildSchema(cfg);
return cfg.BuildSessionFactory();
}
private static void AddDynamicTables(ModelMapper mapper)
{
var clients = new List<string>() { "First", "Second" };
foreach (var client in clients)
{
var map = new ClassMapping<Rule>();
map.EntityName("tbl_" + client + "_rules");
map.Id(x => x.Id);
map.Property(x => x.RuleId);
map.Property(x => x.ShortName);
map.Property(x => x.IsActive);
map.Property(x => x.Description);
map.Property(x => x.Type);
map.Property(x => x.RuleGroup);
map.Table("tbl_" + client + "_rules");
mapper.AddMapping(map);
}
}
Я думаю, это из-за слияния в customizerHolder.Как мне создать переменное количество таблиц из одного класса Map?