Неправильный порядок записи данных в SQL. NET.CORE, EF Core
Всем привет !
Помогите, решить проблему - при записи данных в SQL не соблюдается порядок строк, проблема представлено на рисунке 1.
Код контроллера:
public IActionResult Contact(int VariantId = 1)
{
ViewData["Message"] = "Исходные данные";
IndexViewModel model = new IndexViewModel();
Variants variant = _dcContext.Variants.FirstOrDefault(x => x.VariantId == VariantId);
if (variant is null)
{
// По умолчанию вариант
variant = _dcContext.Variants.OrderBy(x => x.VariantId).FirstOrDefault();
}
// Вариантов нет - создать
if (variant is null)
{
CreateDefaultVariant();
variant = _dcContext.Variants.FirstOrDefault();
}
_dcContext.SaveChanges();
List<Year_1> Year_1 = _dcContext.Year_1.Where(x => x.VariantId == variant.VariantId).ToList();
List<Year_2> Year_2 = _dcContext.Year_2.Where(x => x.VariantId == variant.VariantId).ToList();
List<Year_3> Year_3 = _dcContext.Year_3.Where(x => x.VariantId == variant.VariantId).ToList();
List<Year_4> Year_4 = _dcContext.Year_4.Where(x => x.VariantId == variant.VariantId).ToList();
List<YearPlan_1> YearPlan_1 = _dcContext.YearPlan_1.Where(x => x.VariantId == variant.VariantId).ToList();
List<YearPlan_2> YearPlan_2 = _dcContext.YearPlan_2.Where(x => x.VariantId == variant.VariantId).ToList();
List<YearPlan_3> YearPlan_3 = _dcContext.YearPlan_3.Where(x => x.VariantId == variant.VariantId).ToList();
model.CurrentVariantId = VariantId;
model.Variants = _dcContext.Variants.ToList();
model.Data.Year_1 = Year_1;
model.Data.Year_2 = Year_2;
model.Data.Year_3 = Year_3;
model.Data.Year_4 = Year_4;
model.Data.YearPlan_1 = YearPlan_1;
model.Data.YearPlan_2 = YearPlan_2;
model.Data.YearPlan_3 = YearPlan_3;
return View(model);
}
private void CreateDefaultVariant()
{
Variants v = DefaultData.SetDefaultVariant();
List<Year_1> s = DefaultData.SetDedaultYear1();
List<Year_2> k = DefaultData.SetDedaultYear2();
List<Year_3> w = DefaultData.SetDedaultYear3();
List<Year_4> e = DefaultData.SetDedaultYear4();
List<YearPlan_1> r = DefaultData.SetDedaultYearPlan1();
List<YearPlan_2> t = DefaultData.SetDedaultYearPlan2();
List<YearPlan_3> y = DefaultData.SetDedaultYearPlan3();
CreateVariant(v, s, k, w, e, r, t, y);
}
private void CreateVariant(Variants variant, List<Year_1> Year_1, List<Year_2> Year_2, List<Year_3> Year_3, List<Year_4> Year_4, List<YearPlan_1> YearPlan_1, List<YearPlan_2> YearPlan_2, List<YearPlan_3> YearPlan_3)
{
_dcContext.Variants.Add(variant);
_dcContext.SaveChanges();
foreach (Year_1 _Year_1 in Year_1)
{
_Year_1.VariantId = variant.VariantId;
}
foreach (Year_2 _Year_2 in Year_2)
{
_Year_2.VariantId = variant.VariantId;
}
foreach (Year_3 _Year_3 in Year_3)
{
_Year_3.VariantId = variant.VariantId;
}
foreach (Year_4 _Year_4 in Year_4)
{
_Year_4.VariantId = variant.VariantId;
}
foreach (YearPlan_1 _YearPlan_1 in YearPlan_1)
{
_YearPlan_1.VariantId = variant.VariantId;
}
foreach (YearPlan_2 _YearPlan_2 in YearPlan_2)
{
_YearPlan_2.VariantId = variant.VariantId;
}
foreach (YearPlan_3 _YearPlan_3 in YearPlan_3)
{
_YearPlan_3.VariantId = variant.VariantId;
}
_dcContext.Year_1.AddRange(Year_1);
_dcContext.Year_2.AddRange(Year_2);
_dcContext.Year_3.AddRange(Year_3);
_dcContext.Year_4.AddRange(Year_4);
_dcContext.YearPlan_1.AddRange(YearPlan_1);
_dcContext.YearPlan_2.AddRange(YearPlan_2);
_dcContext.YearPlan_3.AddRange(YearPlan_3);
_dcContext.SaveChanges();
}