我有linq查询,如果p.conditionVariable > 0
要应用以下条件,则需要在其中设置条件。
from prob in table2.where(p => p.Id == p.ConditionVariable && !p.IsBlocked && p.IsActive)
如果p.conditionVariable == 0,则以下内容保持不变。
(from _obj1 in table1.Where(p => p.IsActive == true))
from prob in table2.Where(p => p.Id == _obj1.Id && !p.IsBlocked && p.IsActive && p.ConditionVariable == 0)
select new Class1
{
Title = prob.Title,
Status = prob.IsPending,
Id = obj1.id
}
我认为您想在||
两个条件之间做出选择,table2
并将根据进行查询p.CondtionVariable
。
(from _obj1 in table1.Where(p => p.IsActive == true))
from prob in table2.Where(p => (p.Id == _obj1.Id && !p.IsBlocked && p.IsActive && p.ConditionVariable == 0)
|| (p.ConditionVariable > 0 && p.Id == p.ConditionVariable && !p.IsBlocked && p.IsActive))
select new Class1
{
Title = prob.Title,
Status = prob.IsPending,
Id = _obj1.id
}
如果您想使用if/else
条件,可以使用类似这样的东西
(from _obj1 in table1.Where(p => p.IsActive == true))
from prob in table2.Where(p => {
bool state = false;
if(p.ConditionVariable > 0) {
state = p.Id == p.ConditionVariable && !p.IsBlocked && p.IsActive;
} else if(p.ConditionVariable == 0) {
state = p.Id == _obj1.Id && !p.IsBlocked && p.IsActive;
}
return state;
})
select new Class1
{
Title = prob.Title,
Status = prob.IsPending,
Id = _obj1.id
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句