Имам някои проблеми, когато се опитвам да настроя моята DB с помощта на инициализатор. Имам 3 таблици, LabTest->LabValue‹-LabIndicator, и ето как го кодирам:
public class LabTest
{
public int ID { get; set; }
public DateTime ApplicationDate { get; set; }
public virtual ICollection<LabValue> LabValues { get; set; }
}
public class LabValue
{
public int ID { get; set; }
public decimal Value { get; set; }
public int LabTestID { get; set; }
public int LabIndicatorID { get; set; }
public virtual LabTest LabTest { get; set; }
public virtual LabIndicator LabIndicator { get; set; }
}
public class LabIndicator
{
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<LabValue> LabValues { get; set; }
}
Ето как кодирах моя Db Intializer в моя DBContext:
public class SummumnetDB : DbContext
{
public DbSet<LabIndicator> LabIndicators { get; set; }
public DbSet<LabTest> LabTests { get; set; }
public DbSet<LabValue> LabValues { get; set; }
public class MyFirstInitializer : DropCreateDatabaseIfModelChanges<SummumnetDB>
{
protected override void Seed(SummumnetDB context)
{
new List<LabTest>
{
new LabTest{ ApplicationDate = DateTime.Now},
new LabTest{ ApplicationDate = DateTime.Now},
}.ForEach(l => context.LabTest.Add(l));
new List<LabIndicator>
{
new LabIndicator{ Name="CHOLESTEROL", Description = "Cholesterol lvl"},
new LabIndicator{ Name="HEMOGLOBIN", Description = "Hemoglobin lvl"},
new LabIndicator{ Name="GLUCOSE", Description = "Glucose lvl"},
}.ForEach(l => context.LabIndicators.Add(l));
new List<LabValue>
{
new LabValue{ LabTestID = 1, LabIndicatorID = 1, Value = 2.3m },
new LabValue{ LabTestID = 1, LabIndicatorID = 2, Value = 5.8m },
new LabValue{ LabTestID = 1, LabIndicatorID = 3, Value = 5.2m },
new LabValue{ LabTestID = 2, LabIndicatorID = 1, Value = 6.7m },
new LabValue{ LabTestID = 2, LabIndicatorID = 2, Value = 9.8m },
new LabValue{ LabTestID = 2, LabIndicatorID = 3, Value = 4.3m },
}.ForEach(l => context.LabValue.Add(l));
base.Seed(context);
}
}
Работата е там, че когато го стартирам и EF се опитва да създаде базата данни, получавам тази грешка:
Операторът INSERT е в конфликт с ограничението FOREIGN KEY „LabIndicator_LabValues“. Конфликтът възникна в база данни "SummumnetDB", таблица "dbo.LabIndicators", колона "ID". Изявлението е прекратено. Надявам се, че можете да се справите, благодаря.