如何创建动态Linq到实体,特别是当col的数量可以改变时

时间:2013-12-23 09:56:56

标签: entity-framework

我试图在Linq-to-Entities中创建一个动态查询(我正在使用2012和SQL Server 2005)

以下是详细信息。

create table t1(t1id int, col1 datetime, col2 varchar(500),col3 int)

有下列情况。

  1. select和where子句的列可以更改。

  2. select,where和group by的列可以更改。

  3. 示例#1:

    Select col1, col2 
    from t1 
    where col3 = 1 
      and co1 between '01 jan 2009' and '31 dec 2013'
    

    示例#2:

    Select col1, count(col2) 
    from t1 
    where col3 = 1 
      and co11 between '01 jan 2009' and '31 dec 2013'
    group by co11
    

    我想在2012年(linq to entity)

    中详细说明如下
    " select "+ @selectclause + " from t1  where " + whereclause
    

    您诚挚的

1 个答案:

答案 0 :(得分:0)

Linq to Entities where和Select子句Take表达式。 Iqueryable其中定义为:

 public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate)

Orderby使用类似的表达式。 所以你需要动态构造这些表达式

组合选项A,B和/或C也是可能的。