DomainService:.Include()在客户端上

时间:2010-12-22 14:07:40

标签: silverlight entity-framework ria expression-trees domainservices

是否有可能在客户端的查询中包含子实体? 我正在使用RIA Services开发一个Silverlight应用程序,它背后是DomainService和EntityFramework,用于我的数据库访问。 为了在调用DomainService获取数据时获取关联实体,我必须使用[Include]属性修改DomainService的元数据,并在DomainService上使用Include()方法。 (例如ObjectContext.Parent.Include(“Child”))

但是,我想在我的DomainService中为每个实体提供大量方法来获取关联数据的所有不同组合,因为有时我需要用户和关联的角色,有时我只想让没有任何关联数据的用户等等......

根据一些RIA教程,建议使用Expression Trees提供的功能来修改客户端的查询。 有没有办法在客户端上包含而不是DomainService的get-method? 在使用DomanServices时,我觉得这一定是个常见问题?!

在我的研究期间,我偶然发现了一个类似的问题,但没有任何答案和另一个有人说这是不可能的线程。但是这个答案是在2009年4月左右发布的,自那时以来发展方面发生了很多变化。

由于

1 个答案:

答案 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;

希望这会有所帮助。