WP7 LINQ to SQL и агрегированный запрос - PullRequest
1 голос
/ 26 января 2012

Я добавил следующий блок кода в мое приложение WP7 и не уверен, что означает ошибка:

private void GetTodaysTotal()
{
    // Define the query to gather all of the to-do items.
            var boughtItemsToday = (from DBControl.MoneySpent 
                                        bought in BoughtItemDB.BoughtItems
                                        select bought.ItemAmount).Sum();

    // Execute the query and place the results into a collection.
        BoughtItemsToday = new ObservableCollection<DBControl.MoneySpent> boughtItemsToday);
}

Я получаю сообщение об ошибке;

BoughtItemsToday = new ObservableCollection<DBControl.MoneySpent> boughtItemsToday);

and is;

Наилучший перегруженный метод соответствует для 'System.Collections.ObjectModel.ObservableCollection.ObservableCollection (System.Collections.Generic.List)' с некоторыми недействительными аргументами

Я знаю, что это связано с тем, что запрос LINQ возвращает десятичное значение, но я не уверен, как это исправить.Я намерен связать результат в текстовый блок XAML.

1 Ответ

1 голос
/ 26 января 2012

Вы правы, это факт, что вы возвращаете десятичную дробь из первого запроса и затем пытаетесь привести эти десятичные дроби к DBControl.MoneySpent объектам. Вам понадобятся 2 отдельных запроса.

Учтите это. Ваш первый запрос получит только DBControl.MoneySpent объекты:

var boughtItemsToday = (from DBControl.MoneySpent 
                                        bought in BoughtItemDB.BoughtItems
                                        select bought);

Затем вы можете создать свою наблюдаемую коллекцию следующим образом:

var BoughtItemsToday = new ObservableCollection<DBControl.MoneySpent>(boughtItemsToday);

Наконец, просто получите свою сумму отдельно:

var sum = boughtItemsToday.Sum(item => item.ItemAmount);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...