Несколько левых внешних объединений с коллекциями и EF4 - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть оператор Linq, использующий EF4

var q = from a in FunctionA
        from b in FunctionB.Where(a=>a.Id== b.Id).DefaultIfEmpty()
        from c in FunctionC.Where(c=>c.Id== b.Id).DefaultIfEmpty()
        select a;

, где FunctionA, FunctionB и FunctionC возвращают коллекции.

Для некоторых условий данных я получаю нулевое исключение, так как значениеb в "from b в FunctionB.Where (a => a.Id == b.Id) .DefaultIfEmpty ()" иногда имеет значение null, а затем выражение "from c в FunctionC.Where (c => c.Id ==B..Id)Пожалуйста, помогите!

Спасибо!

1 Ответ

0 голосов
/ 20 сентября 2011

Ваш синтаксис Where выглядит неправильно, и я думаю, что вы на самом деле используете linq-to-objects, но все, что вам нужно сделать, это добавить условие, чтобы проверить, где b не нуль

Изменить - На основе ваших комментариев вы хотите сделать это

  var q = from a in FunctionA
          from b in FunctionB.Where(x => a.Id == x.Id).DefaultIfEmpty()
          from c in FunctionC.Where(x => b != null && b.Id== x.Id).DefaultIfEmpty()
          select a;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...