Соедините таблицу с таблицей мостов и получите данные из основной таблицы, а если данные существуют в таблице мостов, то получите и их - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть две таблицы "Event (EventId, EventName, ...., updatedBy)", "User (UserId, Username ...)" и таблица моста "EventAttendee (EventId, UserId)" *

from c in context.Events
from u in c.users 
where c.EventId == eventId
select s

вышеприведенное делает внутреннее соединение, поэтому, если в таблице EventAttendee нет записей, я не получаю никаких записей.

Я хочу всегда получать сведения о событии из таблицы событий, и если в таблице EventAttendee есть какие-либо записи для этого события, то получить идентификатор пользователя и имя пользователя. Как сделать это в linq to sql, используя Entity Framework, так как мой модальный объект не показывает таблицу мостов?

1 Ответ

2 голосов
/ 29 апреля 2019

Просто добавьте 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 для пользовательских данных, когда нет участников.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...