У меня здесь проблема. У меня есть элемент Linq, который фильтрует список объектов из базы данных.Linq Where Clause в сочетании с условным
Предположим, у меня есть следующий список элементов (каждый «{...}» представляет собой один объект из списка):
{id: 288, id_price_table: 1},
{id: 295, id_price_table: 1},
{id: 295, id_price_table: 2},
{id: 295, id_price_table: 3}
И у меня есть два paramters, один «StandardPriceTable», а другой один - «CurrentUserPriceTable». В моем случае этот paramters являются следующим:
Int32 StandardPriceTable = 1;
Int32 CurrentUserPriceTable = 2;
Теперь то, что я хочу достичь, это: Сделать где положение, которое принимает условный, если идентификатор является уникальным (и, следовательно, принадлежит к StandardPriceTable) возвращает текущий объект к списку.
Но если тот же идентификатор принадлежит к количеству id_price_table, то он должен проверить, какой из объектов принадлежит CurrentUserPriceTable, возвращая только этот объект, за исключением других с тем же идентификатором.
Я знаю, что могу достичь этого с помощью инструкции foreach, но это приведет к запросу базы данных, к которому я хочу избежать пока.
Исходя из условий я рассказал результат исполнения запроса будет равен: IQueryable со следующими itens:
{id: 288, id_price_table: 1},
{id: 295, id_price_table: 2}
Можете ли вы перевести это на лямбда-представление? Это не вызовет запрос базы данных? –
Dominic Спасибо, что решил мою проблему. Мне просто пришлось настроить «одиночный» метод на «firstordefault». Не могли бы вы объяснить выбранную часть одним методом? Я здесь новичок и борется. –
@MarcosSantini Если вы хотите буквально * single * result или 'null', если нет элементов или больше одного, используйте« SingleOrDefault ». 'FirstOrDefault' следует использовать, когда требуется первый элемент (когда возможно более одного) или' null', когда последовательность пуста. – BartoszKP