如何将查询转换为linq

时间:2017-12-07 08:48:47

标签: sql

我有两个相同的数据表,即两个都有一个名为EventId的列作为主键。

第一个数据表(FilteredEvents)包含所有事件,即我不需要的事件以及我需要的事件。

第二个数据表(EventToBeCreated)包含需要创建的事件。

以下是一个例子:

FilteredEvents包含ID:

  

1   2   3   4   5

EventToBeCreated包含ID:

  

1   2   3   4

在此示例中,正确的结果为5,与FilteredEvents中的结果相同,但不在EventToBeCreated中。

这个SQL查询可以满足我的需要,但我需要LINQ等价物:

SELECT Event_Filtered.EventID 
FROM Event_Filtered 
LEFT OUTER JOIN Event_ToBeCreated 
  ON Event_Filtered.EventID = Event_ToBeCreated.EventID
WHERE (Event_ToBeCreated.EventID IS NULL)

1 个答案:

答案 0 :(得分:0)

您没有提供实体详细信息和其他必需信息,它应该是这样的;

var query = from ef in yourContext.Event_Filtered
            join et in yourContext.Event_ToBeCreated on ef.EventID equals et.EventID into ps
            from ps in ps.DefaultIfEmpty()
            where et.EventID == null
            select ef.EventID