Я получаю сообщение об ошибке:Аргумент Exception «Пункт с тем же ключом уже был добавлен»
System.ArgumentException was unhandled by user code HResult=-2147024809 Message=An item with the same key has already been added.
При попытке загрузить страницу в этом приложении. 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));
}
'Distinct' относится к вашему анонимному объекту не в' GroupCode'. Для анонимных объектов: они равны, если ** все свойства ** имеют одинаковое значение. Используйте * GroupBy * для 'GroupCode'. – EZI