Вы можете сопоставить свои коллекции с частным полем «глобально» при следующем соглашении:
// assumes camel case underscore field (i.e., _mySet)
public class CollectionAccessConvention : ICollectionConvention
{
public void Apply(ICollectionInstance instance) {
instance.Access.CamelCaseField(CamelCasePrefix.Underscore);
}
}
Всякий раз, когда вы хотите установить «глобальное» предпочтение автомата в FNH, подумайте о соглашениях. Если вам нужно, вы используете IAutoOverride на заданной карте классов.
Поскольку часть set (HashSet, как правило, то, что мне действительно нужно), в последний раз, когда мне приходилось делать отображение, мне нужно было выполнить переопределение, например:
public class ActivityBaseMap : IAutoMappingOverride<ActivityBase>
{
public void Override(AutoMapping<ActivityBase> m)
{
...
m.HasMany(x => x.Allocations).AsSet().Inverse();
}
}
Я согласен, что это должно перерасти в конвенцию, и, может быть, вы можете сделать это в наши дни. Пожалуйста, напишите, если вы выясните это.
НТН,
Berryl
КОД ДЛЯ ИСПОЛЬЗОВАНИЯ ХАШШЕТА как ICollection =================
public virtual ICollection<WarehouseEntity> Wharehouses
{
get { return _warehouses ?? (_warehouses = new HashSet<WarehouseEntity>()); }
set { _warehouses = value; }
}
private ICollection<WarehouseEntity> _warehouses;