[英]How to filtering related entities but with no foreign keys
我使用EF與lambda表達式來查詢表。
var eventToPushCollage = eventsForEvaluation.Where(x => x.DateTimeStart > currentDateTime && currentDateTime >= x.DateTimeStart.AddMinutes(-15));
表eventsForEvaluation
具有屬性Id。
在我的數據庫中,我還有另一個名為PushedEvents
表,它具有Id屬性。
注意:這兩個表沒有外鍵關系 。
我需要對我的查詢應用另一個過濾,並獲取第二個表PushedEvents
中也不存在的所有記錄。
我想知道是否有可能和示例代碼。
使用組加入:
var eventToPushCollage =
from e in eventsForEvaluation
join p in PushedEvents on e.Id equals p.Id into g
where e.DateTimeStart > currentDateTime &&
currentDateTime >= e.DateTimeStart.AddMinutes(-15) &&
g.Count() == 0 // NOT present in second table
select e;
UPDATE(方法語法)
var eventToPushCollage = eventsForEvaluation
.GroupJoin(PushedEvents,
e => e.Id,
p => p.Id,
(e,g) => new { e, g })
.Where(x => x.e.DateTimeStart > currentDateTime &&
currentDateTime >= x.e.DateTimeStart.AddMinutes(-15) &&
x.g.Count() == 0)
.Select(x => x.e);
嘗試這個
var eventToPushCollage =
from x in eventsForEvaluation
where
!PushedEvents.Any(item => item.Id == x.Id)
&& x.DateTimeStart > currentDateTime
&& currentDateTime >= x.DateTimeStart.AddMinutes(-15)
select x;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.