我正在尝试找到构建动态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子句中引用的字段。不知道为什么只是在其他地方看到这个例子并试图模仿它。我的问题是,是否有人有一个适用于我的情况的例子?
提前致谢, 比利
答案 0 :(得分:2)
你可能在考虑Dynamic LINQ。它将允许您动态构建查询。
答案 1 :(得分:0)
使用动态查询的诱惑是他们使用更熟悉的SQL语法。我建议反对使用它们。使用它们时,您可以使用类型安全和防止Linq提供的SQL注入攻击。
您几乎总是可以使用普通的Linq语法构建查询而不使用动态组件。学习Linq值得努力。
答案 2 :(得分:0)