У меня есть класс:
class Entity
{
public string Name { get; set; }
public bool IsMain { get; set; }
}
Я получаю данные из БД, используя GroupBy
:
var grouppedEntitiesByName = context.GetEntities<Entity>().GroupBy(en => en.Name);
У меня есть некоторые данные в БД:
IsMain = true, Name = "entity"
IsMain = false, Name = "entity"
IsMain = true, Name = "Entity"
Я использую сгруппированные объекты, как это:
foreach (var entity in grouppedEntitiesByName)
{
var mainEntity = entity.Single(a => a.IsMain);
}
Здесь я получаю Sequence contains more than one matching element
исключение.Сгруппированные сущности имеют один ключ entity
и три элемента:
IsMain = true, Name = "entity"
IsMain = false, Name = "entity"
IsMain = true, Name = "Entity"
Тогда я попробовал это:
var grouppedEntitiesByName = context.GetEntities<Entity>().ToList().GroupBy(en => en.Name);
Здесь сгруппированные сущности имеют два ключа: entity
и Entity
Почемунекорректно работает group by в IQueryable
и как это исправить?(Я использую EF)