Как бы вы создали свою модель ef core 2.0 с генерацией свойств объекта с наследованием в OnModelCreating?

Итак, давайте притворимся в своем классе Model (в зависимости от того, как вы хотите называть его, который наследуется от DbContext), и вы переопределяете OnModelCreating. У вас есть базовый класс с именем DBDateTime, и, допустим, он выглядит примерно так ->

public class DbDateTime
{
    public DateTimeOffset CreatedDateTime { get; set; }
    public DateTimeOffset LastModifiedDateTime { get; set; }
}

и тогда у вас есть класс, который наследуется от него --->

   public class MyTable : DbDateTime
{
    public string Id{ get; set; }
    public string prop1{ get; set; }
}

в вашей модели и вашем OnModelCreating у вас будет что-то вроде ->

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {


        modelBuilder.Entity<MyTable>(entity => 
        {
           entity.Property(x => x.CreatedDateTime).Metadata.AfterSaveBehavior = PropertySaveBehavior.Ignore;
        })
     }

Это нормально для одной таблицы, которая наследуется от набора свойств, но если у вас есть 10 таблиц, которые наследуются от такого класса, есть ли способ использовать какое-то наследование с генерацией свойств в ef core 2.0? Я хотел бы написать код один раз и установить правила генерации свойств для базового класса, чтобы мне не приходилось писать его снова и снова для каждого класса, наследуемого от этого базового класса.


person jacobohunter    schedule 20.04.2018    source источник
comment
Есть идеи у кого-нибудь? :(   -  person jacobohunter    schedule 20.04.2018
comment
Что entity.Property(x => x.CreatedDateTime).Metadata.AfterSaveBehavior = PropertySaveBehavior.Ignore; делает эта строка?   -  person vivek nuna    schedule 20.04.2018
comment
зачем тебе PropertySaveBehavior.Ignore?   -  person vivek nuna    schedule 20.04.2018
comment
@viveknuna это скажет после того, как вы сделаете OnSaveChanges, чтобы фактически не передавать это свойство в базу данных из ef, поэтому само значение никогда не будет обновляться через ef, насколько мне известно, или, по крайней мере, попытается   -  person jacobohunter    schedule 20.04.2018
comment
Тогда зачем вам это свойство?   -  person vivek nuna    schedule 20.04.2018
comment
Мне нужно вернуть его клиентам   -  person jacobohunter    schedule 20.04.2018
comment
Я думаю, вы можете игнорировать эту строку, потому что это свойство не изменится, если вы не измените его явным образом.   -  person vivek nuna    schedule 20.04.2018
comment
Вы можете настроить решение из GetEntityTypes: настроить свойства объекта, используя универсальная версия .Property‹TEntity› в EF Core для ваших нужд.   -  person Ivan Stoev    schedule 21.04.2018
comment
@IvanStoev Итак, мой вопрос похож на дубликат? Есть ли способ отблагодарить вас за ответ   -  person jacobohunter    schedule 23.04.2018
comment
Добро пожаловать, приятель. Если это помогло решить вашу проблему, мне этого достаточно :)   -  person Ivan Stoev    schedule 23.04.2018