[英]LINQ With multiple AND and OR Operations
我正在尝试选择满足以下条件的模型:
所有不具有strShortcuts作为dto.ShortCut和strModel作为dto.Model的模型,除了那些具有与dto.Idx相同idxModel的模型之外
var duplicate = _modelRepository.QueryWhere( dup=> dup.idxModel != dto.Idx
&& ( dup.strShortCut == dto.ShortCut
|| dup.strModel == dto.Model
)
)
.FirstOrDefault();
我构造查询正确吗?
我不知道QueryWhere是什么,但是除此之外,您还应该检查:
var duplicate = _modelRepository.QueryWhere( dup=> dup.idxModel != dto.Idx
&& !( dup.strShortCut == dto.ShortCut
|| dup.strModel == dto.Model)
)
...或更好:
var duplicate = _modelRepository.QueryWhere( dup=> dup.idxModel != dto.Idx
&& ( dup.strShortCut != dto.ShortCut
&& dup.strModel != dto.Model)
)
并跳过“ FirstOrDefault”,因为它不会为您提供“所有”模型,但正如函数名所示,它是第一个模型或默认模型(空)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.