2010-03-30 56 views
1

我想找到建立一个动态linq查询和填充列表的最佳方法。用户将有大约五个不同的领域,他们可以选择过滤。目前我有以下代码:如何建立一个动态linq查询

List<TBLPROMOTION> promotionInfo = null; 

    bool active = true; 
    int storeId = 1 

      using (WSE webStoreContext = new WSE()) 
     { 
      promotionInfo = 
       webStoreContext.TBLPROMOTION.Include("TBLSTORE").Include("LKPROMOTIONTYPE") 
       .Where("STORE_ID==" + storeId + " and IS_ACTIVE == " + active).ToList(); 
     } 

但是,此示例出错,因为它无法读取where子句中引用的字段。不知道为什么只是看到这个例子在别的地方,并试图模仿它。我的问题是没有人有一个适合我的情况的例子吗?

由于提前, 比利

回答

2

你可能在想的Dynamic LINQ。它将允许您动态构建查询。

+1

这是确切的例子,不会为我工作。 – 2010-03-30 18:56:42

0

有一种使用动态查询的诱惑,他们使用更熟悉的SQL语法。我会建议使用它们。当你使用它们时,你可以使用Linq提供的类型安全和防范SQL注入攻击。

几乎可以使用普通的Linq语法构建查询,而不使用动态组件。学习Linq是值得的。