繁体   English   中英

使用实体框架过滤结果

[英]filtering results with Entity Framework

我猜还有一个新手问题。 我已经安装了EF,现在我想基于过滤器选择一些记录。 我有一个带有4个项目的SomeClass(所有字符串都是为了使事情保持简单,我们称它们为string1,string2等)。 现在,在一篇博文中,我将过滤器发送到SomeClass的一个实例中,但可能并非所有属性都已填写。因此,您可能最终得到string1 =“ something”,string2 =“ bla”和string4 =“ bla2”。 因此字符串3 = null。 现在,如何设置查询? 如果我尝试类似的东西:

var dataset = entities.mydatabase
    .Where(x => x.string1 == someclass.string1 && x.string2 == someclass.string2 && x.string3 == someclass.string3 && x.string4 == someclass.string4)
.Select(x => new { x.string1, x.string2, x.string3, x.string4}).ToList();

...我没有结果,因为string3 = null。 我可以通过检查所有参数来做些什么,看看是否已设置它们并根据此参数创建查询,但是必须有比这更优雅的东西。

任何人?

谢谢! 罗纳德

下面的代码将返回someclass.string为null 等于x.string所有行。

var dataset = entities.mydatabase
    .Where(x => someclass.string1 == null || x.string1 == someclass.string1)
    .Where(x => someclass.string2 == null || x.string2 == someclass.string2)
    .Where(x => someclass.string3 == null || x.string3 == someclass.string3)
    .Where(x => someclass.string4 == null || x.string4 == someclass.string4)
.Select(x => new { x.string1, x.string2, x.string3, x.string4}).ToList();

暂无
暂无

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

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