Linq to Entities - 深入过滤器(Asp.net)

时间:2011-05-18 18:32:52

标签: asp.net filter linq-to-entities three-tier drilldown

我一直在寻找一种在linq上对实体集合进行多个“where”过滤的好方法。有许多网站使用过滤器进行搜索,例如ebay。

使用的技术称为“向下钻取”过滤器。现在,我正在尝试在使用Linq-to-Entities的3层模型中找到实现此技术的正确方法。

该技术使用先前使用的接收实体集合并使用某种过滤器缩小它,但是有多个过滤器,即使在相同的“过滤类别”中也可以应用和删除。

希望有人找到指向教程的正确链接或如何以正确方式使用它的方法。

1 个答案:

答案 0 :(得分:0)

根据我的经验,侧面的每个“过滤器”都映射到数据库中的一个字段。这使得过滤器变得简单:

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()取代它有意义,我已经在几个webapps上使用了这个并取得了巨大的成功。当您想要的过滤器不直接映射到数据库中的字段时,这会变得更加紧凑,但可以采取类似的方法。