-6ren">
gpt4 book ai didi

c# - 如何将右侧 "where"传递给 C# 中的 IQueryable 实例化?

转载 作者:行者123 更新时间:2023-11-30 23:12:39 24 4
gpt4 key购买 nike

我想抽象我的 IQueryable 调用,以便我可以将 where 传递给函数:

类似于:

public IQueryable<T> executeQuery<T>(T baseType, Expression<Func<T,object>> whereFunc) where T : class 
{
//Get context
DataContext dbContext = new DataContext(connection);

//Get the table representation
Table<T> baseTable = dbContext.GetTable<T>();

//Get our query object
IQueryable<T> baseQuery = from item in baseTable where whereFunc select item;
}

上述方法不起作用,但有什么方法可以做到这一点吗? (即一般创建 IQueryable 但允许传入 where 子句?)

最佳答案

您的 whereFunc 签名有误。 Where 是一个过滤器,因此应该返回 bool,而不是 object。此外,在这种情况下,您不能使用简化的 linq 语法。这应该有效:

public IQueryable<T> executeQuery<T>(T baseType, Expression<Func<T,bool>> whereFunc) where T : class 
{
//Get context
DataContext dbContext = new DataContext(connection);

//Get the table representation
Table<T> baseTable = dbContext.GetTable<T>();

//Get our query object
IQueryable<T> baseQuery = baseTable.Where(whereFunc);
}

关于c# - 如何将右侧 "where"传递给 C# 中的 IQueryable 实例化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43987869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com