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