2011-09-22 36 views
11

Örnek Model: Müşteri -> Sipariş SonraEntityFramework4.1'in .Local() ToBindingList(), Nasıl filtrelenir?

contex.Order.Load(); 
orderBindingSource.DataSource = context.Order.Local().ToBindingList(); 

, nasıl filtrelemek için? Örneğin. context.Order.Where(m=>m.customerID > 1)

Yerel özellik tarafından döndürülen ObservableCollection ile senkronize durumda olan BindingList uygulamasını almak istiyorum.

+0

Doğru ... '.Where' artık beri bir' DBSet', üzerinde '.Local' arayamam bir' IQueryable' üretiyor çünkü bu zordur. Verilerinizin sınırlı kümelerinde '.Local '' i nasıl kullanacaksınız? Sadece tüm DBSet'leri kullanmak için tasarlanamaz, değil mi? Bu, hâlâ anlayabildiğim en son EF4'teki bir sorun ve MSDN belgelerinin yararlı olmadığı. –

cevap

3

Seçme yöntemini kullanmayı denediniz mi? Bu konuda

contex.Order.Load(); 
orderBindingSource.DataSource = 
    context.Order.Local().Select(m => m.customerID > 1).ToBindingList(); 

Düzenleme

tam olarak emin değiliz, bu derler ama ben bunu test etmek için tam bir ortam yok. Belki de belirli bir veriyi yüklemeye çalışırsanız ve daha sonra bağlama listesine erişmek için yerel olarak erişebilirsiniz. Şunun gibi:

context.Order.Select(m => m.customerID > 1).Load(); 
orderBindingSource.DataSource = 
    context.Order.Local.ToBindingList(); 
+1

Ne yazık ki '' '' '' '' '' '' '' '' '' '' '' '' 'gibi' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' yerine bir' IEnumerable '' döndürdüğü için 'ToBindingList'ı desteklemez. –

+0

@DanFitch - Lütfen düzenlemeleri inceleyin. –

+0

Harika cevap .. güzel çalıştı! –

İlgili konular