是否有可能在客户端的查询中包含子实体? 我正在使用RIA Services开发一个Silverlight应用程序,它背后是DomainService和EntityFramework,用于我的数据库访问。 为了在调用DomainService获取数据时获取关联实体,我必须使用[Include]属性修改DomainService的元数据,并在DomainService上使用Include()方法。 (例如ObjectContext.Parent.Include(“Child”))
但是,我想在我的DomainService中为每个实体提供大量方法来获取关联数据的所有不同组合,因为有时我需要用户和关联的角色,有时我只想让没有任何关联数据的用户等等......
根据一些RIA教程,建议使用Expression Trees提供的功能来修改客户端的查询。 有没有办法在客户端上包含而不是DomainService的get-method? 在使用DomanServices时,我觉得这一定是个常见问题?!
在我的研究期间,我偶然发现了一个类似的问题,但没有任何答案和另一个有人说这是不可能的线程。但是这个答案是在2009年4月左右发布的,自那时以来发展方面发生了很多变化。
由于
答案 0 :(得分:0)
您可以在服务器上查询方法。假设您在服务器上有此代码:
public IQueryable<Employee> GetEmployeesSorted()
{
return from Employee emp in ObjectContext.Employees
orderby emp.Title, emp.HireDate
select emp;
}
你可以在客户端上使用这样的
EmployeeContext context = new EmployeeContext();
EntityQuery<Employee> query =
from emp in context.GetEmployeesSortedQuery()
where emp.SalariedFlag == true
select emp;
希望这会有所帮助。