我收到错误:
System.ArgumentException未被用户代码处理 的HResult = -2147024809 消息=已添加具有相同密钥的项目。
尝试在此应用程序中加载页面时。 Visual Studio指向这一行:
_db.GroupProgramPlans.Select(x => new {Code = x.GroupCode, Name = x.Group}).Distinct().ForEach(x=> groups.Add(x.Code,x.Name));
作为导致错误的行。代码查询的表没有PK。我在表中查找了重复的行。表中只有大约30行,虽然它们具有公共列值,但没有任何重复行。我试过删除.Distinct()。不确定导致错误的原因以及应该如何处理错误。下面是代码。
public ActionResult Index()
{
var groups = new Dictionary<string,string>();
_db.GroupProgramPlans.Select(x => new {Code = x.GroupCode, Name = x.Group}).Distinct().ForEach(x=> groups.Add(x.Code,x.Name));
ViewBag.Groups = groups;
return View(_db.DocumentTemplates.Where(x => x.Active == true));
}
答案 0 :(得分:1)
我会写这样的东西
var groups = _db.GroupProgramPlans
.GroupBy(x=>x.GroupCode)
.Select(x=>x.FirstOrDefault())
.ToDictionary(x=>x.GroupCode,x=>x.Group);