是否可以在存储库模式查询C#中添加if-else条件?

时间:2015-10-28 07:00:49

标签: c# asp.net if-statement repository-pattern

是否可以在Repository Pattern Query中添加if-else条件,如果是,那么如何?

我有以下查询:

int Id=3;
IList<Demo> obj= repository.Query<Demo>(p => p.id == Id).ToList<Demo>();

如果Id不等于0,那么我希望同一查询中的条件只有

p => p.id == Id

否则它不应该包含在查询中,是否可能?

我想要这样的事情:

IList<Demo> obj= repository.Query<Demo>(Id != 0?p => p.id == Id:" ").ToList<Demo>();

2 个答案:

答案 0 :(得分:1)

IList<Demo> obj= repository.Query<Demo>().ToList<Demo>();

obj= Id != 0 ? obj.Where(p => p.id== Id).ToList<Demo>() : obj;

这对我有用:)

答案 1 :(得分:0)

您可以在查询之外移动条件:

int Id=3;
IList<Demo> obj = repository.Query<Demo>();
if (Id != 0)
{
    obj = obj.Where(p => p.id == Id);
}
var result = obj.ToList();