DomainService: .Include () на клиенте - PullRequest
1 голос
/ 22 декабря 2010

есть ли возможность включить дочерние объекты в мой запрос на клиенте?Я работаю над приложением Silverlight, используя RIA Services, DomainService и EntityFramework для доступа к моей базе данных.Чтобы получить связанные сущности при вызове DomainService для данных, мне нужно изменить метаданные DomainService с помощью атрибута [Include] и использовать метод Include () в DomainService. (например, ObjectContext.Parent.Include ("Child"))

Тем не менее, я чувствую, что мне нужно получить массу методов для каждой сущности в моем DomainService, чтобы получить все различные комбинации связанныхданные, потому что иногда мне понадобится пользователь и связанная с ним роль , иногда я просто хочу получить пользователя без каких-либо связанных данных и так далее ...

Согласно некоторым учебникам по RIA, рекомендуется использовать функциональность, предоставляемую деревьями выражений, для изменения запроса на стороне клиента.Есть ли способ включить на клиенте вместо get-метода DomainService?Я чувствую, что это должно быть распространенной проблемой при работе с DomanServices?!

Во время моего исследования я наткнулся на аналогичный вопрос, но без какого-либо ответа и другой ветки, где кто-то сказал, что это невозможно.Но этот ответ был опубликован примерно в апреле 2009 года, и с тех пор в разработке произошли значительные изменения.

Спасибо

1 Ответ

0 голосов
/ 22 декабря 2010

Вы можете запросить метод на сервере. Допустим, у вас есть этот код на сервере:

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;

Надеюсь, это поможет.

...