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();
}