2011-11-13 44 views
1

嵌套列出了此前面的問題繼:的LINQ查詢EF 4.1數據綁定到WPF形式

Linq query for EF 4.1 data with nested lists

WPF需要ObservableCollection來綁定數據。我知道我可以通過像構造函數使用列表創建ObservableCollection

new ObservableCollection(myListName) 

但將嵌套組綁定到WPF形式或做我需要我的LINQ查詢的結果碰上一個預先定義的在每個級別鍵入ObservableCollections

+0

關注問題很好,只是不要再次重複整個問題。同時也只是問一個問題。 – Kev

回答

1

您可以直接使用ObservableCollection<School>ObservableCollection<Class>而不是IList<School>IList<Class>在您的模型類中。通過這種方式,您可以確保實體框架在使用預先加載或延遲加載時將實現爲ObservableCollection<T>。用IList<T> EF將創建一個List<T>作爲具體類型而不是ObservableCollection<T>

如果您的導航屬性標記爲virtual您正在使用延遲加載,這意味着只要您的WPF表單想要訪問屬性,EF就會自動加載集合。

var students = new ObservableCollection<Student>(
    context.Students.Include(s => s.Schools.Select(sc => sc.Classes))); 

This blog post可能會有所幫助,以及:如果你想一次加載所有集合在一個查詢中可以使用預先加載(上下文不得設置得到這個工作。)