Может ли свободный API установить NotMapped на все объекты, которые наследуются от базового класса? - PullRequest
3 голосов
/ 15 декабря 2011

Иногда полезно извлечь мои сущности из базового класса, например так:

public abstract class DestructableBase : IDestructable
{
   /// <summary>
   /// If true, this object should be deleted from the database.
   /// </summary>
   [NotMapped]
   public bool _destroy { get; set; }
}

Это позволяет веб-клиенту пометить сущность как нуждающуюся в удалении, когда данные отправляются обратно на сервер.Очевидно, что я не хочу записывать такое свойство в базе данных, поэтому я использую атрибут [NotMapped].

Я все больше и больше начал использовать свободный API для выполнения своих конфигураций и хотел быпрекратить использование аннотаций данных.Есть ли способ использовать свободный API для этого без необходимости устанавливать Ignore () для каждой сущности в отдельности?Или вообще есть лучший способ?

1 Ответ

8 голосов
/ 16 декабря 2011

Вы можете попробовать использовать этот класс в качестве базового класса для ваших конфигураций сущностей:

public class DestructableBaseConfiguration<TEntity> : EntityTypeConfiguration<TEntity>
    where TEntity : DestructableBase
{
    public DestructableEntityConfiguration()
    {
        Ignore(e => e._destroy);
    }
} 

Теперь для каждой другой сущности, полученной из DestructableBase, необходим класс конфигурации сущности, полученный из DestructableBaseConfiguration.Вы зарегистрируете свои конфигурации на modelBuilder в OnModelCreating.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...