Yüklü bir genel yöntem kullanmaya çalışıyorum.Eşleme yöntemini eşleştirerek öğeleri alın
public ICollection<T> GetProductsByMatching<T>(Expression<Func<T, bool>> predicate)
{
return context.Products.Where(predicate).Include("ShopPlace, Images").ProjectTo<T>().ToList();
}
Ve kullanımını Bu yöntemin:
var a = service.GetProductsByMatching<ProductInfo>(x => x.Name.StartsWith("value")
|| x.Price < 150);
Sonunda var Invalid Operation Exception
: 'System.Linq.Queryable' ile uyumludur '' türüne hiçbir jenerik yöntem Bazı kod yazdım Sağlanan tip argümanlar ve argümanlar.
Kodumda sorun mu var? Şimdiden teşekkürler! T
bir Product
olduğunu garantisi yok çünkü
'Çünkü t '=' Product': filtreleme kaynak türüne gerçekleşmesi gerekir iken
Sen, hedef türüne bir yüklemi göre filtreleme çalışıyoruz. Bu kodun ne yapması gerekiyor? Bunun yerine context.et 'demek mi istiyorsunuz? –
CodeCaster
@CodeCaster, ürün bilgilerini kullanarak veritabanından alın ve ProductInfo (ViewModel sınıfı) – user3818229
ile eşleştirin Evet, _that_ bölümü koddan aşikar, ancak "İfade>" yazmanız için nedeninizi bulmaya çalışıyorum. ilk yer. Cevabımda şimdi yöntem ismine bağlı olarak bazı varsayımlar yaptım. –
CodeCaster