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

时间:2014-11-20 13:12:00

标签: c# entity-framework-6

当我在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,但这会导致其他错误。

由于

1 个答案:

答案 0 :(得分:4)

您需要调用SaveChanges()将更改应用于数据库。在你这样做之前,实际上并没有写任何东西。

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

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