簡體   English   中英

實體框架 - 排序關系屬性

[英]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加載數據后無序:可以讓CollectionViewContacts進行排序。 請查看CollectionViewSource 類(MSDN)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM