DataServiceContext & Linq: выбрать только унаследованные объекты - PullRequest
0 голосов
/ 04 августа 2011

Я использую сначала WCF DataSerice и EF4.1 (C #).

У меня есть 2 объекта: 1 человек 2. Пользователь, унаследованный от класса Person

Я хочу получить только объекты пользователя из DbSet Persons. Как я могу это сделать? Затем я запрашиваю dataervice следующим образом:

service.CreateQuery<User>("DbPersons").OfType<User>().Execute();

Я получаю исключение, что метод OfType не поддерживается контекстом dataservice.

Ошибка перевода выражения Linq в URI: метод OfType не поддерживается.

1 Ответ

2 голосов
/ 08 августа 2011

ОК, решено добавлением метода работы сервиса.Смотрите решение здесь http://msdn.microsoft.com/en-us/library/cc668788.aspx

вот мой код:

      public static void InitializeService(DataServiceConfiguration config)
    {
        config.SetServiceOperationAccessRule("DbUsers", ServiceOperationRights.AllRead);
    }

    [WebGet]
    public IQueryable<User> DbUsers()
    {
        return CurrentDataSource.DbPersons.OfType<User>();
    }

и в вашем клиентском приложении отправьте запрос как обычно:

service.CreateQuery<User>("DbUsers").Execute();
...