Работаю с Entity Framework. Есть класс
class Entity
{
public string Name { get; set; }
public bool IsMain { get; set; }
}
Получаю данные из БД c использованием 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. Дело в том что GroupBy дает три элемента, кажется он не различает маленькие и большие буква. После я использовал ToList:
var grouppedEntitiesByName = context.GetEntities<Entity>().ToList().GroupBy(en => en.Name);
Всё работает. Но почему это не работает с IQueryable. Есть ли какое то решение данной проблемы?
Попробуйте использовать FirstOrDefault вместо Single, так:
var mainEntity = entity.FirstOrDefault(a => a.IsMain);
if(mainEntity != null)
{ ... }
Single: выбирает единственный элемент коллекции, если коллекция содердит больше или меньше одного элемента, то генерируется исключение
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть форма на которой выполняется ajax запрос, в итоге выполнения происходит перенаправление на другую страницу$(location)
Есть чекбоксы (их порядка 50 штук), которые передают данные в php файл, и эти данные нужно сохранить, я что то наковырял, и получается что после...
Есть таблица clients и transactionsВ обеих таблицах есть столбец client_id