繁体   English   中英

使用MVC + Linq + EF搜索页面

[英]Search page with MVC + Linq + EF

所以,我想实现一个在数据库中搜索记录的页面。 该动作的URL应该类似于“〜/ Mail / List / {PropertyName} / {PropertyValue}。

属性名称和值是要过滤的相应实体属性名称,值是要匹配的属性值。 问题是该实体包含许多类型的属性。 Int,string,date ..等

问题是,如何实现动态搜索页面或类似的东西来过滤我的查询?

谢谢!

所有LINQ运算符都希望传入lambdas。所以当你想像Where(x => x.[PropertyName] == [PropertyValue])那样进行过滤时,你需要能够构造相应的lambda表达式。 通常,当在编译时知道值时,没有问题,你只需要构造lambda。

如果在编译时不知道值,则必须手动构造表达式树 (基本上是lambda表达式)。 这可能有点复杂,但有一些库可以帮助你,比如Dynamic LINQ是EF的另一个好教程)。 然后,您可以将Where条件指定为字符串,并且运行时库将其转换为表达式树,或者如果错误则抛出异常。

因此,在您的示例中,使用Dynamic LINQ,您可以执行db.Mails.Where(PropertyName + " == @0", PropertyValue);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM