数据库种子期间出现“序列不包含任何元素”错误

本文关键字:何元素 包含任 元素 错误 种子 数据库 | 更新日期: 2023-09-27 18:31:06

当我在 Seed 方法中运行以下代码时,包管理器控制台不断抛出"序列不包含任何元素"错误。

context.Countries.AddOrUpdate(c => c.Name,
    new Country { IsInUse = true, Name = "Botswana", Alpha2 = "BW", Alpha3 = "BWA" },
    new Country { IsInUse = true, Name = "Lesotho", Alpha2 = "LS", Alpha3 = "LSO" },
    new Country { IsInUse = true, Name = "Mozambique", Alpha2 = "MZ", Alpha3 = "MOZ" },
    new Country { IsInUse = true, Name = "South Africa", Alpha2 = "ZA", Alpha3 = "ZAF" },
    new Country { IsInUse = true, Name = "Swaziland", Alpha2 = "SZ", Alpha3 = "SWZ" },
    new Country { IsInUse = true, Name = "Zimbabwe", Alpha2 = "ZW", Alpha3 = "ZWE" }
);
Country za = context.Countries.Where(x => x.Name == "South Africa").First();

我需要让南非国家/地区对象执行其余步骤(未显示)。

如果我使用 FirstOrDefault 或 SingleOrDefault,系统会返回一个 null,这会中断其余步骤。

为什么当我清楚地添加数据时,我的上下文返回 null。

我尝试过保存更改,但这会导致其他错误。

谢谢

数据库种子期间出现“序列不包含任何元素”错误

您需要

调用 SaveChanges() 才能将更改应用于数据库。 在你这样做之前,实际上什么都没有写。

context.SaveChanges();
Country za = context.Countries.Where(x => x.Name == "South Africa").First();

如果 SaveChanges() 抛出错误,那么这就是你真正的问题,你应该发布它。