1

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

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

根据一些 RIA 教程,建议使用表达式树提供的功能来修改客户端的查询。有什么方法可以包含在客户端而不是 DomainService 的 get 方法?我觉得这一定是使用 DomanServices 时的常见问题?!

在我的研究过程中,我偶然发现了一个类似的问题,但没有任何答案,并且有人说这是不可能的。但是这个答案是在 2009 年 4 月左右发布的,从那时起,开发中发生了很多变化。

谢谢

4

1 回答 1

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;

希望这会有所帮助。

于 2010-12-22T14:23:26.507 回答