linq-запрос, показывающий long, не содержит определения для Contains при преобразовании sql-запроса в linq - PullRequest
0 голосов
/ 29 мая 2018

друзья, мы конвертируем sql-запрос в linq-запрос, это преобразование включает в себя две таблицы следующим образом:

select * from Tbl_Vulpith_Registration where Profile_Pic is not null and MemId IN(select MemId from Tbl_List_Services)

здесь Tbl_Vulpith_Registration и Tbl_List_Services - оба таблицы

memId - общий столбец вобе таблицы.

в соответствии с тем, что мы пытались преобразовать вышеупомянутым SQL-запросом в linq

var reglist=  objentity.Tbl_Vulpith_Registration.Select(a => a).Where(a => a.Profile_Pic != null);
// var res= reglist.Where(a=>a.Tbl_List_Services)

var listmemsmemIds = objentity.Tbl_List_Services.Select(b => b.MemId).ToList();

var finalist = reglist.Select(b => b).Where(c => c.MemId.Contains(listmemsmemIds));

Мы пробовали несколько способов преобразования, но безуспешно.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Используйте приведенный ниже код, который объединяет две таблицы и извлекает выходные данные (внутренне он создаст только один запрос)

var reglist = objentity.Tbl_Vulpith_Registration.Join(objentity.Tbl_List_Services, 
     o => o.MemId, i => i.MemId, (o, i) => o).Where(o => o.Profile_Pic  != null).ToList()

Приведенный выше код сопоставляет таблицы на основе сопоставления MemId и возвращает объекттипа сущности Tbl_Vulpith_Registration.

Если вы хотите прочитать о методе Join, отметьте эту ссылку.

0 голосов
/ 29 мая 2018

Вам нужно сделать прямо противоположное:

.Where(c => listmemsmemIds.Contains(c.MemId))
...