在查询执行时创建动态LINQ to SQL选择器

时间:2017-01-15 09:35:37

标签: linq linq-to-sql

我想在IQueryable查询上有一个选择器,它将在查询执行时动态构建:

IQueryable<Row> query = 
    from row in table
    select <byDynamicSelector>

<byDynamicSelector> = row => new Row { Value1 = row.Value1, Value2 = 0 };
Row[] rows1 = query.ToArray(); //Here I will get all the rows with Value2 = 0

<byDynamicSelector> = row => new Row { Value1 = 0, Value2 = row.Value2 };
Row[] rows2 = query.ToArray(); //Here I will get all the rows with Value1 = 0

由于查询实际上是由第三方代码执行的,因此我需要能够在实际执行之前更改选择器。

我该怎么做? 感谢。

其他说明:

Altough我被建议使用可以动态构建的表达式树,它们在任何进一步的执行之前只构建一次。 我需要的是在任何执行之前构建动态投影(选择)。这是因为我需要在查询执行时知道不同的投影。

我被建议实现我自己的IQueryProvider来实现这一点,但是只注入我想要的投影的最简单方法是什么?

0 个答案:

没有答案
相关问题