Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: IEnumerable => IN (1,2,3) / 5 сообщений из 5, страница 1 из 1
01.02.2015, 17:41
    #38868801
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EF: IEnumerable => IN (1,2,3)
Есть IEnumerable, содержащий набор значений 1,2,3

Есть IQueryable сущностей с набором полей. Как для него правильно задать условие отбора одного из полей .Where(n => n.MyField... ), чтобы в SQL получилось "WHERE MyField IN (1,2,3)"
...
Рейтинг: 0 / 0
01.02.2015, 22:11
    #38868917
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EF: IEnumerable => IN (1,2,3)
Shocker.ProЕсть IEnumerable, содержащий набор значений 1,2,3

Есть IQueryable сущностей с набором полей. Как для него правильно задать условие отбора одного из полей .Where(n => n.MyField... ), чтобы в SQL получилось "WHERE MyField IN (1,2,3)"

Код: c#
1.
query.Where(p => array.Contains(p.Id))



П.С. Рекомендую избегать IEnumerable, где это только возможно. IEnumerable представляет собой что угодно (даже бесконечную последовательность), это слишком общий интерфейс, подходящий больше универсальным библиотекам. В прикладном коде либо ICollection / IList, либо (что лучше) IReadOnlyCollection / IReadOnlyList. Пользуемся этим правилом больше года (и до этого пользовались, но не было внутреннего регламента) — только плюсы.
...
Рейтинг: 0 / 0
01.02.2015, 22:40
    #38868926
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EF: IEnumerable => IN (1,2,3)
hVostt
Код: c#
1.
query.Where(p => array.Contains(p.Id))

странно, но на такой формат у меня EF ругнулся, что не может распознать выражение, после чего я и задал вопрос. Ладно попытаюсь локализовать.

hVosttП.С. Рекомендую избегать IEnumerable, где это только возможноОк, ну по факту у меня вполне конкретный List<int>
...
Рейтинг: 0 / 0
01.02.2015, 23:13
    #38868940
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EF: IEnumerable => IN (1,2,3)
Shocker.Proстранно, но на такой формат у меня EF ругнулся, что не может распознать выражение, после чего я и задал вопрос. Ладно попытаюсь локализовать.

Может дело в версии? Какая версия EF и какой двиг БД?
...
Рейтинг: 0 / 0
02.02.2015, 01:33
    #38868971
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EF: IEnumerable => IN (1,2,3)
Разобрался, я умудрился внутри лямбды еще сделать дополнительную фильтрацию это списка 1,2,3
Отфильтровал заранее - прошло. Спасибо.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: IEnumerable => IN (1,2,3) / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]