Конвертировать Левый запрос внешнего объединения в запрос Entity Framework - PullRequest
2 голосов
/ 30 апреля 2011

У меня есть SQL-оператор, который я хочу преобразовать в EF4.

Это простое левое внешнее соединение, которое выглядит как

SELECT * 
FROM EntryDate 
LEFT OUTER JOIN Member on Member.CardId = EntryDate.CardID

, как мне это сделать, используяструктура сущности 4?

1 Ответ

2 голосов
/ 30 апреля 2011

Если в вашей модели есть отношение, вы можете просто использовать свойства навигации, потому что они всегда используют левое соединение:

var data = members.EntryDates; 

Я полагаю, у вас нет такого отношения, потому что CardId не выглядиткак первичный ключ Member или EntryDate.

Если у вас нет навигационных свойств, вы должны использовать

var query = from m in context.Members
            join e in context.EntryDates on m.CardId equals e.CardId into x
            from res in x.DefaultIfEmpty()
            select new
            {
               Member = m,
               EntryDate = res
            };

Это работает только в EFv4 +, потому что EFv1 не поддерживает DefaultIfEmpty.

...