我一直在寻找一种在 linq 的实体集合上执行多个“where”过滤器的好方法。有很多网站在侧面使用过滤器进行搜索,例如 eBay。
所使用的技术称为“向下钻取”过滤器。现在,我正在尝试找到在使用 Linq-to-Entities 的 3 层模型中实现此技术的正确方法。
该技术使用早期使用的接收实体集合,并通过某种过滤器缩小范围,但即使在同一过滤“类别”内,也可以应用和删除多个过滤器。
希望有人为我找到正确的教程链接或如何正确使用它的方法。
最佳答案
根据我的经验,侧面的每个“过滤器”都映射到数据库中的一个字段。这使得过滤器变得简单:
var result = db.Table
.Where(t => t.Name.Contains(ddlName.Text))
.Where(t => t.Attribute1.Contains(Attribute1.Text));
.Where(t => t.Attribute2.Contains(Attribute2.Text));
显然你可以在有意义的地方替换.Equals()
,我已经在几个网络应用程序上使用了它,并取得了巨大的成功。当您想要的过滤器不直接映射到数据库中的字段时,这会变得有点棘手,但可以采用类似的方法。
关于asp.net - Linq to Entities - 向下钻取过滤器 (Asp.net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049409/