当我在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,但这会导致其他错误。
由于
答案 0 :(得分:4)
您需要调用SaveChanges()将更改应用于数据库。在你这样做之前,实际上并没有写任何东西。
context.SaveChanges();
Country za = context.Countries.Where(x => x.Name == "South Africa").First();
如果SaveChanges()抛出错误,那么这是你真正的问题,你应该发布。