Не могли бы вы сказать мне, почему в моей БД я получаю 0
значения после Seed method
? Вот как это выглядит:
public static void Seed(this ModelBuilder modelBuilder)
{
int countOfWorkers = 10;
for (int i = 0; i < countOfWorkers; i++)
{
modelBuilder.Entity<Driver>().HasData(
new Driver
{
// 10 same workers
Id = i + 1,
FarmId = 1,
FirstName = "name" + i,
LastName = "lastname" + i,
UsdPerHour = 7.2,
HoursPerDay = 8,
DaysOfWork = 31
});
}
}
И мои Models
классы:
public abstract class Worker
{
[Key]
public int Id { get; set; }
[ForeignKey("Farm")]
public int FarmId { get; set; }
public Farm Farm { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual double UsdPerHour { get; set; }
public virtual int HoursPerDay { get; set; }
public virtual int DaysOfWork { get; set; }
public virtual double CountBaseSalary() => throw new NotImplementedException();
}
public class Driver : Worker
{
public Driver() => BaseSalary = CountBaseSalary();
public override double UsdPerHour { get; set; }
public override int HoursPerDay { get; set; }
public override int DaysOfWork { get; set; }
public override double CountBaseSalary() => UsdPerHour* HoursPerDay *DaysOfWork;
}
Я использую EF Core 2.1.1
. Что я сделал не так, что я получаю 0's
значения для свойств на Driver При необходимости я могу добавить больше информации.
Мой DbContext
:
public class FarmDbContext : DbContext
{
public FarmDbContext(DbContextOptions<FarmDbContext> options) : base(options) { }
public DbSet<Farm> Farms { get; set; }
public DbSet<Worker> Workers { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<Driver>();
builder.Seed();
base.OnModelCreating(builder);
}
}