[英]Entity Framework - Sorting Relationproperties
我的問題是,如何對實體的相關項目進行排序。
在發票編輯 window 中,我有一個 ComboBox 顯示所有客戶:
XAML:
<UserControl.Resources>
<CollectionViewSource x:Key="cvsCustomers"
d:DesignSource="{d:DesignInstance local:Customer, CreateList=True}" />
...
</UserControl.Resources>
<ComboBox ItemsSource="{Binding Source={StaticResource cvsCustomers}}" .../>
代碼隱藏:
Dim cvsCustomers As System.Windows.Data.CollectionViewSource
cvsCustomers = CType(Me.FindResource("cvsCustomers"), System.Windows.Data.CollectionViewSource)
Dim qryCustomers = _
From c In myEntities.Customers _
Order By c.CustomerCode
Select c
cvsCustomers.Source = qryCustomers
現在我有第二個 ComboBox 顯示所選客戶的所有聯系人。 這工作正常,但第二個 ComboBox 中的條目未排序/按 ID 排序。
XAML:
<ComboBox ItemsSource="{Binding Path=myInvoice.Customer.Contacts}" .../>
;
如何排序第二個 ComboBox 的列表?
國王問候,並提前感謝您的提示/建議,
尼科
我認為有兩種可能。
加載數據時:聽起來您正在使用 EF 的延遲加載功能來加載與Customer
相關的Contacts
。 要對聯系人進行排序,您需要設置什么是排序選項,它是什么時候是什么時候,但是通過延遲加載,這些無法設置。 因此,您可以使用急切加載或顯式加載來訂購Contacts
。 請查看在 EF 4.1 第 6 部分中使用 DbContext:加載相關實體,基於 EF4.1。 像這樣,顯式加載案例:
//Oh, I'm not familiar with VB.NET, so it's C# code var customer; // it's assumed to be initialized. context.Entry(customer).Collection(c => w.Contacts).Query().Orderby(c =>c.Name).Load();
通過CollectionView
加載數據后無序:可以讓CollectionView
對Contacts
進行排序。 請查看CollectionViewSource 類(MSDN) 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.