具有不同的自动映射 "configurations"

Having different automapping "configurations"

我想要两种不同的映射配置。我需要以某种方式将参数传递给约定,以便它们可以有不同的行为。除了使用 lock 和静态字段,我该怎么做?

我找到了解决方案:Conventions.Find 允许查找约定实例。

var map = AutoMap.AssemblyOf<AutomappingConfiguration>(new AutomappingConfiguration())
    .Conventions.AddFromAssemblyOf<AutomappingConfiguration>()
    .UseOverridesFromAssemblyOf<AutomappingConfiguration>();

foreach (var c in map.Conventions.Find<TableConvention>())
{
    c.AllWritable = allWritable;
}