C# 如何传递表达式<;Func<;T、 布尔>&燃气轮机;谓词作为方法的参数?

C# 如何传递表达式<;Func<;T、 布尔>&燃气轮机;谓词作为方法的参数?,c#,linq,generics,delegates,C#,Linq,Generics,Delegates,我有一个处理交易的高阶函数: public static void ExecuteTransaction<Context, FunctionParameter>(Action<FunctionParameter> functionToBeExecuted, FunctionParameter parameter,

我有一个处理交易的高阶函数:

public static void ExecuteTransaction<Context, FunctionParameter>(Action<FunctionParameter> functionToBeExecuted,
                                                                           FunctionParameter parameter,
                                                                           Context context)
                                                                           where Context : DbContext
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    functionToBeExecuted(parameter);
                    context.SaveChanges();

                    transaction.Commit();
                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
public static void ExecuteTransaction(要执行的操作函数),
函数参数,
上下文(上下文)
其中Context:DbContext
{
使用(var transaction=context.Database.BeginTransaction())
{
尝试
{
要执行的功能(参数);
SaveChanges();
Commit();
}
捕获(例外)
{
transaction.Rollback();
投掷;
}
}
}
如何更改ExecuteTransaction方法以接受此方法及其参数

public void DeleteBy(Expression<Func<TEntity, bool>> predicate)
{
    var results = DbSet.Where(predicate).ToList();
    DbSet.RemoveRange(results);
}
public void DeleteBy(表达式谓词)
{
var results=DbSet.Where(谓词).ToList();
DbSet.removange(结果);
}

如果我理解正确,您正在尝试将
DeleteBy
传递给
ExecuteTransaction
,并让
ExecuteTransaction
运行该方法

假设您已经准备了一个
表达式
作为
DeleteBy
的参数:

Expression<Func<TEntity, bool>> param = entity => /*some lambda that returns a bool */;

编译器将自动推断
函数参数
表达式

如果我理解正确,您正在尝试将
DeleteBy
传递给
ExecuteTransaction
,并让
ExecuteTransaction
运行该方法

假设您已经准备了一个
表达式
作为
DeleteBy
的参数:

Expression<Func<TEntity, bool>> param = entity => /*some lambda that returns a bool */;

编译器将自动推断
函数参数
表达式

动作
动作
?就是这样,我是一个c#新手。就是这样,我是一个c#新手。