Я использую EF для присоединения к таблице с использованием списка.LINQ select from Queryable, соединяющий список
У меня есть посещаемость таблицы:
Attendance
----------
UserBaseId
ClassroomID
Attendance Status ...etc
Кроме того, у меня есть посещаемость IEnumerable в памяти, одной и той же структуры, давайте назовем его newAttendance.
Мне нужно найти все записи из таблицы посещаемости, которая соответствует UserBaseId и ClassroomId в newAttendance List.
до сих пор я попытался это,
var entriesInAttendanceTable = context.Attendance.Where(
x => (newAttendance .Select(i => i.UserBaseId).Contains(x.UserBaseId))
&& newAttendance .Select(i => i.ClassRoomId).Contains(x.ClassRoomId)
).ToList();
это приводит следующий запрос SQL:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[ClassRoomId] AS [ClassRoomId],
[Extent1].[UserBaseId] AS [UserBaseId],
[Extent1].[CreatedOn] AS [CreatedOn],
[Extent1].[UpdatedOn] AS [UpdatedOn],
[Extent1].[UpdatedByUser_Id] AS [UpdatedByUser_Id],
[Extent1].[CreatedByUser_Id] AS [CreatedByUser_Id]
FROM [dbo].[Attendance] AS [Extent1]
WHERE (EXISTS (SELECT
1 AS [C1]
FROM (SELECT 1 AS X) AS [SingleRowTable1]
WHERE 1 = 0
)) AND (EXISTS (SELECT
1 AS [C1]
FROM (SELECT 1 AS X) AS [SingleRowTable2]
WHERE 1 = 0
))
также попытался присоединиться, но он не работал.
ТИА
Что происходит, когда вы вызываете .ToList(), чтобы выполнить запрос в этом месте? Кроме того, вы должны выбрать идентификаторы в памяти, а не внутри запроса. – DevilSuichiro
ничего не выбирает, хотя у меня есть записи, соответствующие критериям., Обновленный вопрос с SQL-запросом – SJMan
Что означает синтаксис 'var x in y'? Я этого раньше не видел. – smead