Dinamik aşağıdaki oluşturmaya çalışıyorum, ancak benExpression.Call - çağrılması linq uzantısı: FirstOrDefault,
Expression parameter = Expression.Parameter(typeof(Engine), "e");
Expression property = Expression.Property(parameter, "Cars");
aşağıdakilere sahip uzatma yöntemi "FirstOrDefault"
using(var context = new Entities())
{
var list = context.Engines.Include("Cars").Select(e => e.Cars.FirstOrDefault()).ToList();
}
arayarak sorun yaşıyorum
- parametre = {e}
- özelliği = {e.Cars}
olanlar iyi, ama ben FirstOrDefault yöntemini
var result = Expression.Call(typeof(Queryable), "FirstOrDefault", new type[] { typeof(Car)}, property);
denemek ve demenden bir sorunla karşılaşmak ediyorum ben almak istiyorum
- sonuç = {e.Cars.FirstOrDefault()}
ama bir InvalidOperationException
alıyorumtüründe 'System.Linq.Queryable' türünde 'FirstOrDefault' türü, türünde argümanları ve bağımsız değişkenleri ile uyumludur. yöntemi jenerik değilse, türünde hiçbir bağımsız değişken sağlanmalıdır.
Herhangi bir yardım çok takdir edilecektir.
Teşekkürler. Adam
sen açıklık getirebilir? FirstOrDefault, * genellikle * lambda'nın bir parçası değildir, bu nedenle İfade –
ile dahil edilmesine gerek yoktur. Amacım bir lamda içinde bir lamda oluşturmaktır, bu yüzden böyle bir şey: .Where (e => e.Cars .Where (c => c.Name == "Honda").> 0) Bu bir şeyi açıklığa kavuşturuyor mu yoksa kafam karıştı mı? – Aducci