C# 具有多个参数的Select中的EF核心表达式

C# 具有多个参数的Select中的EF核心表达式,c#,sql-server,entity-framework-core,C#,Sql Server,Entity Framework Core,因此,我有一个属性,我将解析为Select方法。这将与一个参数一起工作,但我能使它与两个参数一起工作吗?如果我不能,该方法是什么?我使用的是EF Core 3.1.8。使用SQLServer3.1.8包 private static Expression<Func<ClassOne, bool, ClassTwo> Summary { get { return (p, myBool) => new ClassTwo() { ListOf

因此,我有一个属性,我将解析为
Select
方法。这将与一个参数一起工作,但我能使它与两个参数一起工作吗?如果我不能,该方法是什么?我使用的是EF Core 3.1.8。使用SQLServer3.1.8包

private static Expression<Func<ClassOne, bool, ClassTwo> Summary
{
  get
  {
    return (p, myBool) => new ClassTwo()
    {
      ListOfItems = p.ListWithMyItems.Where(i => i.Field == myBool)
    }
  }
}

定义扩展方法

public static class Extensions {
    public static IQueryable<ClassTwo> Summary(this IQueryable<ClassOne> one, bool myBool)
    {
        return one.Select(p => new ClassTwo
        {
            ListOfItems = p.ListWithMyItems.Where(i => i.Field == myBool)
        });
    }
}
公共静态类扩展{
公共静态IQueryable摘要(此IQueryable摘要,bool myBool)
{
返回一个。选择(p=>newclasstwo
{
ListOfItems=p.ListWithMyItems.Where(i=>i.Field==myBool)
});
}
}
像这样使用它

public async Task<ClassTwo> GetSummaryAsync(bool isAdmin = false)
{
  return await _context
    .DatabaseTable 
    .Summary(isAdmin)
    .ToListAsync();
}
公共异步任务GetSummaryAsync(bool isAdmin=false) { 返回等待上下文 .数据库表 .摘要(isAdmin) .ToListAsync(); }
您是否尝试编写自己的扩展方法?@MustafaArslan不,我没有。你到底在想什么?我在下面回答了。
public static class Extensions {
    public static IQueryable<ClassTwo> Summary(this IQueryable<ClassOne> one, bool myBool)
    {
        return one.Select(p => new ClassTwo
        {
            ListOfItems = p.ListWithMyItems.Where(i => i.Field == myBool)
        });
    }
}
public async Task<ClassTwo> GetSummaryAsync(bool isAdmin = false)
{
  return await _context
    .DatabaseTable 
    .Summary(isAdmin)
    .ToListAsync();
}