2010-03-10 51 views
1

我開始使用VS 2010 RC中的EF4使用Entity Framework。到目前爲止,我已經完成了一些簡單的控制檯應用程序,用於創建EDM,使用LINQ to Entities查詢它,並將結果輸出到控制檯。使用MVVM的LINQ to Entity結果

現在我正在構建一個演示WPF應用程序,以瞭解如何將EF4與WPF集成。我在我的WPF應用程序中使用MVVM,其中每個視圖(或多或少)都有一個包含控件綁定到的數據屬性的視圖模型。例如,我的WPF演示應用程序在視圖模型中有一個Customers屬性,視圖中的下拉列表將綁定到該屬性。正如您可能已經猜到的,我的EDM包含一個Customer實體。

這是我的問題:如何將LINQ to Entities結果連接到我的視圖模型屬性?當我查詢我的客戶實體時,看起來我收到IQueryable<Customer>。但我的視圖模型屬性是ObservableCollection<Customer>,我需要數據綁定才能工作。那麼,我如何從IQueryable<Customer>ObservableCollection<Customer>?謝謝你的幫助。

回答

2

根據MSDN,ObservableCollection構造函數可以採用List<T>IEnumerable<T>。假設queryable是你的IQueryable<Customer>

ObservableCollection<Customer> ocCustomer = new ObservableCollection<Customer>(queryable.ToList()); 
+0

我會檢查一下。這可能很簡單,但對於NHibernate來說,如果我打破了這個集合,我就失去了髒檢查。 – 2010-03-12 01:25:36

+0

更完整的答案可以在這裏找到:http://stackoverflow.com/questions/2433591/does-wpf-break-an-entity-framework-objectcontext。基本上,當WPF添加或刪除可觀察集合中的對象時,必須更新ObjectContext。使用來自ObservableCollection 的集合類很簡單。 – 2010-03-12 22:37:43