我们有一个对象public class SomeObject{ public Name {get;set;} public City {get;set;} public State {get;set} //various other parameters. Let's say there's ~20}是否可以在不重新编译源代码的情况下动态创建新的LINQ查询?而是,查询参数来自在数据库中存储和更新的XML结构。var result = from i in someObj where //XML requests Name = 'Bob'...so append this where clause name = 'Bob'能做到吗?
3 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
您肯定会想看看Dynamic Linq,它将使您可以将查询条件定义为文本。
至于动态添加条件,您可以使用与以下类似的语法将条件添加到查询中:
if(CategoryIsImportant)
myQuery = myQuery.Where("CategoryId=2");
所有这些都可以(很容易地)编码为您选择的XML格式。
慕妹3242003
TA贡献1824条经验 获得超6个赞
根据您的问题,我很难分辨,但是在某些情况下,您不需要动态的Linq,只需执行此操作即可...
var result = from o in someObj
where (Name == null || o.Name == Name)
&& (City == null || o.City == City)
&& (State == null || o.State == State)
select o;
当相关参数为null时,这将基本上防止过滤数据。由于C#中的短路行为,它的性能仍然很好。
- 3 回答
- 0 关注
- 521 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消