动态lambda表达式条件
Markup 全选
ParameterExpression pm = Expression.Parameter(typeof(ZUD_ApplicationStudioLockInfo),"x");
Expression body = null;
foreach(var item in this.layersToDelete) {
Expression bodyItem = null;
var viewIdLeft = Expression.Property(pm,nameof(ZUD_ApplicationStudioLockInfo.ApplicationID));
var viewIdRight = Expression.Constant(item.Id);
var viewIdExpr = Expression.Equal(viewIdLeft,viewIdRight);
var layerNameLeft = Expression.Property(pm,nameof(ZUD_ApplicationStudioLockInfo.LayerName));
var layerNameRight = Expression.Constant(item.LayerName);
var layerNameExpr = Expression.Equal(layerNameLeft,layerNameRight);
bodyItem = Expression.AndAlso(viewIdExpr,layerNameExpr);
body = body == null ? bodyItem : Expression.OrElse(body,bodyItem);
}
var lambda = Expression.Lambda<Func<ZUD_ApplicationStudioLockInfo,bool>>(body,pm);
var lockData = Db.ZUD_ApplicationStudioLockInfo.Where(lambda).ToList();版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 张国生


