Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > LINQ (Language-Integrated Query) > Аналог IN из SQL для разных коллекций |
Автор: EASports 10.1.2016, 00:21 | ||||
Всем привет! Странно, но что-то у меня не получается нагуглить ничего по этому поводу, применительно для меня. Либо я туплю и все настолько элементарно, что никто даже не спрашивал на форумах, либо все делают как-то по другому. На самом деле я нашел способ, но мне он не нравится. Скажем так, он не изящный. Собственно суть. Есть 3 класса, пусть они будут такие:
Предположим таблицы наполнены некими данными. Требуется выполнить запрос следующего плана (пишу свой способ реализации, как и говорил, надеюсь, кто-то знает более изящный):
То есть мне нужно получить всех пользователей из таблицы Users с определенной ролью. У меня в базе запрос к другим таблицам и данным, но суть та же самая. |
Автор: chupachups 11.1.2016, 12:14 |
Так требуется выполнить запрос к таблицам SQL или все же к коллекциям объектов на C#? В первом случае ничего элементарнее IN не придумали, можно через INNER JOIN Во втором случае смотри https://msdn.microsoft.com/ru-ru/library/bb397919.aspx Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Analog-IN-iz-SQL-dlya-raznykh-kollektsy-id56917a73ae2015bf678b4568#findElement_E7045_56937280ae20159c64f986e9_0 |
Автор: EASports 16.1.2016, 22:53 |
Уже решил. Все намного проще оказалось. int roleid = 1; var users = from u in Users join ur in UsersRoles on u.id = ur.userid where ur.roleid == roleid select u; Вроде в синтаксисе не ошибся. В редакторе не проверял. Исправляйте, если накосячил. Возможно кому-то поможет. |