我正在使用EF使用列表来加入表。LINQ从Queryable加入列表中选择
我有考勤表:
Attendance
----------
UserBaseId
ClassroomID
Attendance Status ...etc
此外, 我有相同结构的出勤率在内存中的IEnumerable,姑且称之为newAttendance。
我需要从出席表中找到匹配newAttendance列表中的UserBaseId和ClassroomId的所有记录。
到目前为止,我已经试过了,
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
))
还试图加入,但它没有工作。
TIA
当你调用.ToList(),在这个地方实际执行查询时会发生什么?此外,您应该选择内存中的ID,而不是在查询内。 – DevilSuichiro
不会选择任何内容,尽管我的条目与条件匹配。更新后的问题与SQL查询 – SJMan
“var x in y”语法是什么意思?我以前从来没有见过。 – smead