如何构建动态linq查询

时间:2010-03-30 18:05:40

标签: linq linq-to-entities

我正在尝试找到构建动态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子句中引用的字段。不知道为什么只是在其他地方看到这个例子并试图模仿它。我的问题是,是否有人有一个适用于我的情况的例子?

提前致谢, 比利

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

使用动态查询的诱惑是他们使用更熟悉的SQL语法。我建议反对使用它们。使用它们时,您可以使用类型安全和防止Linq提供的SQL注入攻击。

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

答案 2 :(得分:0)