C# 数据服务查询扩展相关扩展
假设一个C# 数据服务查询扩展相关扩展,c#,wcf-data-services,C#,Wcf Data Services,假设一个公司有多个员工s,而每个员工又有多个考勤记录s 使用DataServiceQuery我可以包括所有公司的所有员工: dataContext.Companies.Expand(c => c.Employees); 但是,如果我还想包括所有员工出勤记录,该怎么办 我不能这样做: dataContext.Companies.Expand(c => c.Employees).Expand(ce => ce.AttendanceRecords); dataContext.C
公司
有多个员工
s,而每个员工又有多个考勤记录
s
使用DataServiceQuery
我可以包括所有公司的所有员工:
dataContext.Companies.Expand(c => c.Employees);
但是,如果我还想包括所有员工出勤记录,该怎么办
我不能这样做:
dataContext.Companies.Expand(c => c.Employees).Expand(ce => ce.AttendanceRecords);
dataContext.Companies.Expand(c => c.Employees.Expand(e => e.AttendanceRecords));
因为在第二个扩展中
,我仍然只有可用的公司属性(因此ce
仍然是指公司,而不是“公司员工”)
同样,我不能这样做:
dataContext.Companies.Expand(c => c.Employees).Expand(ce => ce.AttendanceRecords);
dataContext.Companies.Expand(c => c.Employees.Expand(e => e.AttendanceRecords));
因为Expand
方法对员工不可用
如何在一次查询中返回公司、员工和考勤记录?您可以尝试以下方法:
var companies = dataContext.Execute<Company>(new Uri("http://service/Companies?$expand=Employees($expand=AttendanceRecords)")).ToList();
var companys=dataContext.Execute(新Uri(“http://service/Companies?$expand=Employees($expand=attendencecords)”).ToList();
odatav4开始支持在另一个$expand中扩展实体。在这种情况下,我认为最好使用expand(string)
方法,例如dataContext.companys.expand(“公司/员工”),但我真的希望找到一种使用lambda表达式来利用强类型的解决方案。据我所知,目前还没有这种方法。@TolgaEvcimen Entity Framework