Entity Framework - выберите свойство соединения с нулевым значением - PullRequest
2 голосов
/ 28 марта 2012

Моя структура таблицы выглядит так:

Account
 AccountId
 LoginName
 EmployeeId - nullable
Employee
  FirstName,
  SecondName,
  etc..

У меня есть запрос:

   var data = from o in _accountRepository.AsQueryableWithIncludes(x => x.Employee, x => x.Permissions)
               select new AccountGridVM
               {
                   AccountId = o.AccountId,
                   EmployeeFirstName = o.EmployeeId == null ? String.Empty: o.Employee.FirstName,
                   LoginName = o.LoginName,
                   Permissions = o.Permissions.Select(s => s.NameCZ)
               };
    return View(new GridModel { Data = data });

Моя проблема в операторе tenar в EmployeeFirstName, структура сущностей всегда выбирает только те учетные записи, которым назначен employeeId, но мне нужно получить все учетные записи.

Если я удалю свойство EmployeeFirstName, ef извлекает все строки.

Где проблема?

Спасибо

1 Ответ

1 голос
/ 28 марта 2012

Проблема решена.У меня была ошибка в картировании.

  //bad
  HasRequired(x => x.Employee).WithMany().HasForeignKey(x => x.EmployeeId); // inner join

  //good
  HasOptional(x => x.Employee).WithMany().HasForeignKey(x => x.EmployeeId); // left join
...