Как исключить базовый класс, используя плавные сопоставления в Fluent NHibernate?

У меня есть абстрактный базовый класс Entity, от которого происходят все мои POCO:

public abstract class Entity
{
    public virtual Guid Id { get; set; }
}

И файл сопоставления:

public class EntityMap<T> : ClassMap<T> where T : Entity
{
    public EntityMap
    {
        Id(x => x.Id);
    }
}

Таким образом, мне не нужно писать Id(x => x.Id) в каждом файле сопоставления, используя следующее:

public class Something : EntityMap<T>
{
    blahblah
}

Я автоматически создаю схему своей базы данных, и все выглядит нормально, за исключением того, что базовый класс Entity добавляется в виде таблицы. Используя плавные сопоставления, как мне настроить его так, чтобы класс Entity был исключен из схемы базы данных?


person Daniel T.    schedule 21.11.2009    source источник
comment
Упс, нашел свой ответ. Таблица Entity осталась от предыдущего поколения схемы базы данных. Очевидно, NHibernate генерирует только НОВЫЕ таблицы (и удаляет старые, если они имеют то же имя, чтобы заменить их новым), но не удаляет уже существующие таблицы, которые не перекрываются.   -  person Daniel T.    schedule 21.11.2009


Ответы (1)


Вы можете добавить его в список игнорирования auto mapper:

AutoMap.AssemblyOf<Entity>()
  .IgnoreBase(typeof(Entity));
person Hellraiser    schedule 04.05.2015