2012-01-25 53 views
1

我已將以下代碼塊添加到我的WP7應用程序中,但不確定錯誤的含義;WP7 LINQ to SQL和Aggregate查詢

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); 

並且是;

的最佳重載方法匹配「System.Collections.ObjectModel.ObservableCollection.ObservableCollection(System.Collections.Generic.List)」有一些無效參數

我知道這是一件與LINQ查詢返回一個十進制值,但我不知道如何解決它。我打算將結果綁定到XAML TextBlock中。

+0

我'd希望從缺少的語法錯誤'(',但這只是我 –

回答

1

你說得對,這是事實,你是從你的第一個查詢返回小數,然後試圖將這些小數轉換爲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); 
+0

史蒂夫 - 感謝您的幫助,我明白了爲什麼你需要這樣做,但我不知道現在如何綁定XAML Tex tBlock爲SUM值,因爲它不在可觀察集合中? – MAO

+0

你只需要在你的模型上有一個屬性來公開它。如果沒有更多的問題背景,我無法舉出一個例子。 –