3
Ben Eşit yöntemi için mükemmel çalışıyorLINQ ifadesi
Sorun i
Yani sorguda nasıl değiştirileceği dinamik FilterField
alıyorum yöntemi içeriyor üzerinde linq dinamik ifadesini ancak karşılaştığı sorunları eklemek istediğiniz İçeriyor LINQ ifade
örnek q kullanarak yöntemini içerir için çok i sorguya yukarıda yapmak istiyorum
List<int> Ids = new List<int>();
**string filterField ="DEPARTMENT"; ==> Dynamic Field**
var eParam = Expression.Parameter(typeof(EmployeeDetail), "e");
var comparison = Expression.Equal(Expression.Property(eParam, filterField), Expression.Convert(Expression.Constant(Ids), Expression.Property(eParam, filterField).Type));
var lambda = Expression.Lambda<Func<EmployeeDetail, bool>>(comparison, eParam);
var countMonthly1 = ctx.tblMonthlyInput.Join(ctx.tblEmployee, a => a.CompanyId, b => b.CompanyId, (a, b) => b).Where(lambda).Count();
denemiş işleri uery:
var countMonthly = (from a in ctx.tblMonthlyInput
join b in ctx.tblEmployee on a.CompanyId equals b.CompanyId
where categoryId.Contains(a.CategoryId) //want to make this dynamic
select a).Count() == 0;
argümanını çağırırız. –
"List.Contains" yöntemini almanız ve bunu "Expression.Call()" ile çağırmanız gerekir. – Rob
@Sonra düzgün bir şekilde derlediğimi belirttiğim örnek sorgu ama problemi yapmak istiyorum ('a.CategoryId') dinamik – Nilesh