Group by не работает с WCF Data Services - PullRequest
2 голосов
/ 07 июля 2010

У меня есть этот код,

Сводка данных - это класс, а не сущность. Я использую это для анонимного типа на "выберите новый"

public class DataSummary
{
    public DataSummary()
    {
    }

    public int AccountID
    {
        get; set;
    }

    public decimal Total
    {
        get; set;
    }
}

тогда у меня есть этот запрос

        DateTime date1 = new DateTime(2003, 1, 1);
        DateTime date2 = new DateTime(2011, 1, 1);


        InitializeComponent();

        var query = (from d in svc.Data
                 where d.Date >= date1 && d.Date <= date2
                 group d by d.AccountID into g
                 orderby g.Key
                 select new DataSummary()
                 {
                     AccountID = g.Key.Value,
                     Total = g.Sum(d => (decimal) d.Value)
                 }) as DataServiceQuery<DataSummary>;


        query.BeginExecute(new AsyncCallback(r =>
        {
            try
            {
                this.grid.ItemsSource = query.EndExecute(r).ToList();
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
        }), null);

когда я запускаю запрос, он говорит, что группа по нему не поддерживается. Я видел много вопросов о службах данных WCF, которые используют group by. кто-нибудь знает, что происходит ???

Когда я размещаю код на стороне сервера, он также выдает ошибку. Я пытался получить информацию с помощью источника данных без группы, и это работает. так что у меня нет вариантов

Заранее спасибо

1 Ответ

4 голосов
/ 08 июля 2010

Группировка по не поддерживается клиентской библиотекой WCF Data Services, поскольку такая поддержка не поддерживается в языке запросов URL.Интересно, где вы видели, что он упоминал, что он действительно работает?

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

...