Я попытался создать соглашение с любым из двух предложений, и даже с обоими, и ни одно из них, похоже, не работало с беглым nhibernate 1.3.0.727
public class IgnoreAttributeConvention : AttributePropertyConvention<IgnoreAttribute>
{
protected override void Apply(IgnoreAttribute attribute, IPropertyInstance instance)
{
instance.ReadOnly();
}
}
public class IgnoreAttributeConvention : AttributePropertyConvention<IgnoreAttribute>
{
protected override void Apply(IgnoreAttribute attribute, IPropertyInstance instance)
{
instance.Access.None();
}
}
public class IgnoreAttributeConvention : AttributePropertyConvention<IgnoreAttribute>
{
protected override void Apply(IgnoreAttribute attribute, IPropertyInstance instance)
{
instance.Access.None();
instance.ReadOnly();
}
}
Позже я обнаружил это обсуждение групп Google, в котором, хотя в более старых состояниях нельзя игнорировать свойства с условным обозначением, это должно быть сделано путем переопределения карты классов при использовании автоподстановки.
https://groups.google.com/forum/?fromgroups#!topic/fluent-nhibernate/PDOBNzdJcc4
Это старо, и я не знаю, актуально ли оно, но это был мой опыт. Я надеюсь, что это избавит кого-то еще от попыток использовать это решение или побудит кого-то другого указать, где я могу пойти не так.