我正在使用动态LINQ来预处理一些用户请求。它的成立方式是,我会从那里收集数据到瓦尔数据从列表构建Linq查询<string>使用动态LINQ
var data = Project.Model.Adhoc.GetData().AsQueryable();
这基本上是一个SELECT * FROM视图
然后,我将通过所有的,我有选择循环以过滤用户选择
foreach (Filters filter in filters.OrderBy(x=>x.strOrderNumber))
{
有一些检查和排列一起,我得到了这个
data = data.Where(filter.strFilter + FormatOperator(filter.strOperator) + "@0", filter.strValue).
Select(x => x).ToList().AsQueryable();
这是工作得很好,但数据源开始增长,所以我想要做的是这样的:
data = data.select(get all items that were selected)
然后做我的检查和排列。这将允许我只拉取需要的,而不是整个数据源。 C#中使用linq完成这件事的最好方法是什么?
Ex。
datasource = {Name, Age, Race, Gender, Hair Color, Eye Color, height, weight, etc}
user selected = {Name, Age, Race, Gender}
而不是查询针对整个数据源,我想限制数据源仅什么是用户了蝙蝠带进来,然后我可以基于作为德数据源
就这样,我明白了,你基本上想发送一个“select * from myView where x = [something] and y = [something]”,这样SQL服务器只返回有限的结果吧? – CodingGorilla