Решение Калеба Педерсона работало для меня. Я обновил ColumnAttributeTypeMapper, чтобы разрешить настраиваемый атрибут (имел требование для двух разных сопоставлений на одном и том же объекте домена) и обновил свойства, чтобы позволить частным сеттерам в случаях, когда необходимо было получить поле и типы отличались.
public class ColumnAttributeTypeMapper<T,A> : FallbackTypeMapper where A : ColumnAttribute
{
public ColumnAttributeTypeMapper()
: base(new SqlMapper.ITypeMap[]
{
new CustomPropertyTypeMap(
typeof(T),
(type, columnName) =>
type.GetProperties( BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).FirstOrDefault(prop =>
prop.GetCustomAttributes(true)
.OfType<A>()
.Any(attr => attr.Name == columnName)
)
),
new DefaultTypeMap(typeof(T))
})
{
//
}
}