将表与桥表连接,并从主表中获取数据,如果桥表中存在数据,则也将其获取

时间:2019-04-29 16:38:14

标签: c# entity-framework linq-to-sql

我有两个表“ Event(EventId,EventName,....,UpdatedBy)”,“ User(UserId,Username ...)”和一个桥接表“ EventAttendee(EventId,UserId)”

my.field:*

上面正在做一个内部联接,所以如果EventAttendee表中没有记录,那么我没有任何记录。

我想始终从事件表中获取事件详细信息,如果EventAttendee表中有该事件的任何记录,则获取用户ID和用户名。由于我的实体模态不显示桥表,因此如何使用Entity Framework在LINQ to SQL中做到这一点?

1 个答案:

答案 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提供与用户相关的数据。