【发布时间】:2015-11-30 13:50:24
【问题描述】:
我想选择 2 个或更多这样的字段:例如,我们有一些人的列表,现在他们说要找到住在纽约的男性
我们在这里有 2 个字段“城市”和“性”。
我可以这样做
private List<tblTest> GetAll(string city, string sexual)
{
var all = (from x in db.tblTest
where x.city == city && x.sexual == sexual
select x).ToList();
return all;
}
这个没有帮助:
private List<tblTest> GetAll(string city, string sexual)
{
var all = (from x in db.tblTest
where x.city == city || x.sexual == sexual
select x).ToList();
return all;
}
使用“&&”我可以做到,但如果我只想选择“City”它不起作用,我想像这样搜索 14 个字段,我们想搜索一些字段而不是全部我们拥有的字段,但我们不知道要搜索哪些字段
我该怎么办?
【问题讨论】:
-
您是说要传入数量不定的过滤器吗?所以它可能只是城市,但下一次可能是城市和性?
-
如果基于变量
null可能类似于where (city == null || x.city == city) && (sexual == null || x.sexual == sexual) -
你会发现这个answer很有用。
-
@StephenBrickner 不,它不会,延迟执行意味着它仅在您将查询具体化为列表或通过它枚举时才会访问数据库。
-
@StephenBrickner 是的,但这很容易走到最后。
标签: c# entity-framework