C# 正在使用所选Id检查项目Id
这在我的控制器中,我正在尝试用项目填充下拉列表。我已经在基于活动项目进行填充,但我还想添加以前选择的项目,即使它现在处于非活动状态。我想签入Where子句以获取活动项,但我还想添加一个“or”以获取列表中参与方类型id之前选择的参与方类型idC# 正在使用所选Id检查项目Id,c#,asp.net-mvc,C#,Asp.net Mvc,这在我的控制器中,我正在尝试用项目填充下拉列表。我已经在基于活动项目进行填充,但我还想添加以前选择的项目,即使它现在处于非活动状态。我想签入Where子句以获取活动项,但我还想添加一个“or”以获取列表中参与方类型id之前选择的参与方类型id viewModel.AvailablePartyTypes = _partyTypeRepository.FindAll().OrderBy(o => o.Description).Where(a => a.IsActi
viewModel.AvailablePartyTypes =
_partyTypeRepository.FindAll().OrderBy(o => o.Description).Where(a => a.IsActive).ToSelectList(
"PartyTypeId", "Description", viewModel.PartyTypeId.ToString());
这就是我想要得到的:
Where(a=>a.IsActive || selected.PartyTypeId == PartyTypeId)
也许我忽略了一些事情,但这不是很简单吗
Where(a=>a.IsActive || selected.PartyTypeId == a.PartyTypeId)
编辑:
如果它变得复杂,则将其重构为如下方法调用:
Where(a=> UseItem(a))
private static bool UseItem(object a)
{
bool result = a.IsActive;
//etc
return result;
}
我不太清楚为什么我的答案被删除了。尽管其他人也提供了帮助,但我得到答案和形成的方式并不是真正由帮助我的人产生的。我已经把它贴在我原来的问题帖子上了。这本书对我来说很有用。我的一些where子句类似于:where(a=>a.IsActive→false | | a.PartyTypeId==ViewModel.PartyTypeId)错误是无形的,它不会得到活跃的项目。当有复杂的lambda考虑通过方法调用替换它们时。谢谢帮助,我可以四处游玩,找出另一种解决方案,它恰好类似于你的第一个建议。再次感谢