Fluent NHibernate Automapping with abstract base class

Учитывая классы ниже:

public class Address : Place
{
    public virtual string Street { get; set; }
    public virtual int Number  { get; set; }


    public override string WhereAmI
    {
        get { string.Format("{0} {1}", Street , Number); }
    }
}
public abstract class Place : DomainEntity
{
    public abstract string WhereAmI { get; }
}

Когда я использую это сопоставление:

var autoMap = AutoMap.AssemblyOf<Party>()
            .Override<Place>(map => map.IgnoreProperty(p => p.WhereAmI))
            .Override<Address>(map => map.IgnoreProperty(p => p.WhereAmI))
            .Where(type => type.Namespace != null && type.Namespace.Contains("Models"));

, я все равно получаю сообщение об ошибке: Не удалось найти установщик для свойства 'WhereAmI' в классе 'Address'

Что я сделал:

  • Когда я удаляю свойство из базового класса "Address", оно работает.
  • Когда я использую .OverrideAll (map => map.IgnoreProperty ("WhereAmI")) Но Я не Я не хочу, чтобы он был глобальным, потому что в другом классе я мог бы использовать то же имя свойства, где я НЕ хочу включить это свойство

Есть ли какой-нибудь способ заставить это работать, кроме как использовать интерфейс?

7
задан amaters 9 May 2011 в 11:13
поделиться