var v1 = _questionRepository.GetQuery().Where(q =>
q.EvaluationGroupId == evaluationGroupId &&
((q.TopicValue == questionTopic &&
q.Index > currentQuestionIndex) ||
(q.TopicValue > (questionTopic) &&
q.Index >= 0 && q.Id != currentQuestionIndex)))
.OrderBy(q => q.Index).OrderBy(a => a.TopicValue).FirstOrDefault();
var v2 = _questionRepository.GetQuery().Where(q =>
q.EvaluationGroupId == evaluationGroupId &&
((q.TopicValue == questionTopic &&
q.Index > currentQuestionIndex) ||
(q.TopicValue > (questionTopic) &&
q.Index >= 0 && q.Id != currentQuestionIndex)))
.OrderBy(q => q.Index).OrderBy(a => a.TopicValue).ToList().FirstOrDefault()
V1 != V2實體不同這怎麼可能?與EF實體IQueryable.FirstOrDefault()和IEnumerable.FirstOrDefault()返回不同的值
「!=運算符比較引用,而不是數據。」在這種情況下,是的。值得一提的是,如果你覆蓋.Equals(),這不一定是真的。 –