У меня есть классы, которые представлены следующим образом:
public abstract class TankModel
{
protected static readonly char delimiter = ',';
protected string _destinations = "";
[Key]
public int ID { get; set; }
[NotMapped]
public String[] Destinations
{
get
{
return _destinations.Split(delimiter);
}
set
{
_destinations = String.Join($"{delimiter}", value);
}
[..........................]
}
}
public class NormalTank : TankModel
{
public double VolumeTotal { get; set; }
[.........]
}
Мой метод OnModelCreating содержит:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<TankModel>().Property<string>("Outputs").HasField("_destinations");
modelBuilder.Entity<TankModel>().ToTable("Tanks");
modelBuilder.Ignore<TankModel>();
modelBuilder.Entity<NormalTank>().HasBaseType<TankModel>();
[..................]
}
Когда я отображаю строки NormalTank, столбцы Назначения пустые.
Я пытаюсь отобразить данные без наследования, тогда в столбце «Назначения» указано правильное значение.Я подозреваю, что modelBuilder.Ignore<TankModel>();
вызывает эту проблему, но без этого свойства я не создаю миграцию.
Я борюсь с этой проблемой уже несколько часов и не вижу никаких решений.
Как я могу сохранить пункты назначения в моей базе данных?