Eski projeyi Linq2Sql'den EF6'ya taşımaya çalışıyorum ve aşağıdaki sorunlarım var.EF 6 çocuk koleksiyonlarını filtrelemek
Bu proje (yani tüm metinler fazla 1 çevirisini var) çok dilli ve ben şu var db yapısı: Bütün ExampleEntity1 göre filtrelenmiş tüm LocalizedContent kayıtları ile nesneleri almanın en iyi yolu nedir
geçerli dil kimliği dc.ExampleEntity1.Include(ee => ee.TextEntry.LocalizedContents);
Linq2SQL ben loadOptions.AssociateWith
kullanarak LocalizedContent kayıtlarını filtre edebilirsiniz ama Ef6 türlü çözüme bulamıyor:
Aşağıdaki kodu kullanarak tüm LocalizedContent kayıtları ile tüm ExampleEntity1 nesneleri yükleyebilirsiniz.
Benzer eski soruları gördüm (2-3 yıl önce gönderilmiş gibi) ve sadece EF6 için bir çözüm olup olmadığını merak ediyorum. Bu benim için çok önemli bir özellik çünkü projede düzinelerce varlığım var ve her bir seçim sorgusu için özel nesneler oluşturmak istemiyorum. o filtrelemek mümkün değil
Akla gelen ancak durumunuz için çalışmayabilecek bir seçenek: geçerli dil kimliğini ve TextEntryId öğesini alan ve doğru LocalizedContents öğesini döndüren özel bir veritabanı işlevi. Sadece bazı fikirleri umarım tutuşturmak için dışarı atıyoruz. –
sadece ilginiz dışında ... neden fakefield'i textentry üzerinde localisedContent'e taşıyorsunuz ve masadaki metinleri düşürmüyorsunuz, bu hiçbir şeyi kaybetmeden işleri basitleştiremezdi. o zaman başka bir bağlantı tablosu üzerinden gitmek zorunda kalmayacaksınız .... hangi fakefield dışında eklediğini göremiyorum ... hangi localisedContent için hareket olabilir ... – Seabizkit
Eğer yerli EF yöntemleri kullanmak istiyorsanız, EF6'nın yeni kesişme API'siyle komuta ağaçlarını durdurmayı bitireceğim. Bunu yaparsanız, sonunda EntityFramework.DynamicFilters'ı yeniden keşfedeceksiniz. Nuget paketine giderdim. –