Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 实体框架-选择可为空的联接属性_Sql_Linq_Entity Framework 4_Linq To Entities - Fatal编程技术网

Sql 实体框架-选择可为空的联接属性

Sql 实体框架-选择可为空的联接属性,sql,linq,entity-framework-4,linq-to-entities,Sql,Linq,Entity Framework 4,Linq To Entities,我的表结构如下所示: Account AccountId LoginName EmployeeId - nullable Employee FirstName, SecondName, etc.. 我有疑问: var data = from o in _accountRepository.AsQueryableWithIncludes(x => x.Employee, x => x.Permissions) select new

我的表结构如下所示:

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 });
我的问题是EmployeeFirstName中的tenar运算符,实体框架总是只获取帐户,它分配了employeeId,但我需要获取所有帐户

如果删除EmployeeFirstName属性,则ef获取所有行

问题在哪里


谢谢,问题解决了。我在绘制地图时出错了

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

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

您是否尝试了
o.EmployeeId==null
而不是
o.EmployeeId==null
?是的,尝试o.EmployeeId.HasValue,o.EmployeeId==null,o.EmployeeId=null