Я хочу скрыть свойство Id первичного ключа от потребителей моих классов сущностей:
public class A
{
protected virtual int Id { get; set; }
public virtual string Name { get; set; }
... etc ...
}
Создание защищенного свойства Id не работает со стандартным автоматическим сопоставлением, оно не может его найти.
Я попытался переопределить DefaultAutomappingConfiguration.IsId(...)
, но он вызывается только с публичными участниками.
Как я могу заставить это работать без использования конкретных ClassMap<A>
s для каждого типа, как описано здесь:
http://wiki.fluentnhibernate.org/Fluent_mapping_private_properties
EDIT:
Я хочу изменить автоматическое отображение соглашений , чтобы искать любое свойство с именем 'Id', а не только общие свойства. Я не хочу настроить его для каждого класса, используя ClassMap<T>
следующим образом:
public ClassAMap: ClassMap<A>
{
public ClassAMap()
{
Id(Reveal.Member<ClassAMap>("Id"));
}
}
public ClassBMap: ClassMap<B>
{
public ClassBMap()
{
Id(Reveal.Member<ClassBMap>("Id"));
}
}
... etc ...