我有两个表“ Event(EventId,EventName,....,UpdatedBy)”,“ User(UserId,Username ...)”和一个桥接表“ EventAttendee(EventId,UserId)”
my.field:*
上面正在做一个内部联接,所以如果EventAttendee表中没有记录,那么我没有任何记录。
我想始终从事件表中获取事件详细信息,如果EventAttendee表中有该事件的任何记录,则获取用户ID和用户名。由于我的实体模态不显示桥表,因此如何使用Entity Framework在LINQ to SQL中做到这一点?
答案 0 :(得分:2)
只需添加DefaultIfEmpty()
:
from e in context.Events
from u in e.users.DefaultIfEmpty()
where e.EventId == eventId
select ...
不确定s
中的select
是什么,但可能类似于
select new { e.EventName, UserId = (int?)u.UserId, u.UserName }
这将为您提供事件的所有参与者列表,或者在没有参与者的情况下为null
提供与用户相关的数据。