Не удается сформировать оператор выбора для запроса в Silverlight - PullRequest
0 голосов
/ 19 июля 2011

Я хочу сделать что-то вроде

  • из таблицы1
  • где col5 = "abcd"
  • выберите col1

Мне понравилось

        query_ = From g In DomainService.GetGEsQuery Select New GE With {.Desc = g.codDesc}

"Это вызывает ошибку во время выполнения, я пробовал разные комбинации, но не смог"

пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 19 июля 2011

DomainService.GetGEsQuery () возвращает IQueryable, , который полезен только при последующей асинхронной загрузке . Вам не хватает () при вызове метода, но это только первая проблема.

Вы можете применить операции фильтрации к запросу, возвращенному с помощью Where и т. Д., Но его все равно необходимо передать методу Load в контексте вашего домена (в вашем примере это называется DomainService).

Пример, который опубликовал Jack7, показывает анонимный обратный вызов из метода load, который затем получает доступ к результатам внутри объекта загрузки lo и извлекает только необходимое поле с помощью другого запроса. Обратите внимание, что вы можете отфильтровать запрос в службах RIA, но не можете изменить базовый тип возврата (то есть вы не можете отфильтровать нежелательные столбцы на стороне клиента).

Второе предложение Jack7 реализовать конкретный метод на стороне сервера, возвращая только те данные, которые вы хотите, является вашим лучшим вариантом.

0 голосов
/ 19 июля 2011

Я предполагаю, что вы пытаетесь сделать это на стороне клиента. Если это так, вы могли бы сделать что-то вроде этого

          DomainService.Load(DomainService.GetGEsQuery().Where(g => g.codDesc == "something"), lo =>
            {
                if (lo.HasError == false)
                {
                    List<string> temp = lo.Entities.Select(a => a.Name).ToList();
                }
            }, null);

Вы также можете сделать это на стороне сервера (что я лично предпочел бы), как это

        public IQueryable<string> GetGEStringList(string something)
        {

            return this.ObjectContext.GE.Where(g => g.codDesc == something).Select(a => a.Name);
        }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...