使用延迟加载的实体框架 - 在实体为空时加载相关实体有以下问题。
假设我有两张表employee 和employeedetails。假设在上述情况下,并非所有员工条目在employeedetails 表中都有条目。如果我想查找员工列表
(from e in objectcontext.employees
select new EmployeeEntity
{
EmpID= e.EmployeeID,
FirstName = e.FirstName,
Address = e.employeedetails.Address
}).ToList();
EmployeeEntity 是我们将结果填充到其中的数据类。
如果即使返回列表中的一名员工在表employeedetails 中没有条目,上述代码也会中断。这很明显,因为对于那些没有详细信息条目的客户,e.employeedetails 将为空
重写上述查询的最佳方法是什么?
这样的事情可以接受吗?
(from e in objectcontext.employees
select new EmployeeEntity
{
EmpID= e.EmployeeID,
FirstName = e.FirstName,
Address = e.employeedetails == null ? "" : e.employeedetails.Address,
}).ToList();
我不清楚上述查询的效率 - 这个语句会在数据库级别进行空值检查吗?
我是否应该做一个明确的包含,比如
objectcontext.include("employeedetails")...
然后循环遍历结果以检查是否为空?