永发信息网

c# ef框架的删除的lamda表达式怎么封装

答案:2  悬赏:30  手机版
解决时间 2021-03-23 23:58
  • 提问者网友:一抹荒凉废墟
  • 2021-03-23 06:08
c# ef框架的删除的lamda表达式怎么封装
最佳答案
  • 五星知识达人网友:duile
  • 2021-03-23 07:22
// 使用Lambda表达式树构建动态查询
public virtual void Delete(string field, string id) where TEntity : class
{
      ParameterExpression pe = Expression.Parameter(typeof(TEntity), "m");
      MemberExpression left = Expression.Property(pe, field);
      // 具体类型根据实际情况,这里假设是int,So,强制转换int。
      ConstantExpression right = Expression.Constant(Convert.ToInt32(id));
      BinaryExpression binary = Expression.Equal(left, right);
      var predicate = Expression.Lambda>(binary, new[]{pe});
      TEntity entity = dbSet.Cast().Where(predicate).FirstOrDefault();
       
      // ...TO DO SOMETHING...
}另外,已在你的另一个提问链接回答过了。请参阅。

全部回答
  • 1楼网友:想偏头吻你
  • 2021-03-23 08:07
Delete(T id,FuncEx delFun)...
.Where(delFun)....
应该这样追问

如图,它的参数好像是Func的,FuncEx是什么类型

追答FuncEx是你自己定义的delegate啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯