gpt4 book ai didi

c# - 如何在 Linq 中使用动态创建的字符串作为 WHERE 条件

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:16 25 4
gpt4 key购买 nike

我必须创建返回 IQueryable 的方法,而 tor 取决于确切的类型。是否可以准备任何可在 WHERE 语句之后使用的标准?

例如,if T == License i use "c.fkCustomer == Organization.Customer"

如果 T== People ,我使用 "c.fkPeople== Organization.People"

XPQuery<T> cQuery = new XPQuery<T>(cSession);
IQueryable CurrQr = from c in cQuery
where "c.fkCustomer == Organization.Customer"
select c;

有人可以提出一些建议,如何实现这个目标吗?

最佳答案

我认为你最好在这里使用 lambda 作为参数而不是动态 linq,例如。

public IQueriable<T> MyQuery<T>(Expression<Func<T, bool>> predicate)
{
return new XPQuery<T>(cSession).Where(predicate)/*and any other bits you want at the moment this is a straight up where clause so kinda pointless*/;
}

然后你可以调用它:

MyQuery(c=> c.fkCustomer == Organization.Customer)

MyQuery(c=> c.fkPeople == Organization.People)

关于c# - 如何在 Linq 中使用动态创建的字符串作为 WHERE 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001654/

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