Ph0*_*n1x 0 c# linq entity-framework
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()
Run Code Online (Sandbox Code Playgroud)
v1 != v2 ENTITIES不同 如何可能?(db中的数据相同)
存储库与EF实体一起运行
!=运算符比较引用,而不是数据.它们可能返回相同的值,但是!=不比较值,它将对象引用与内存堆(指针)进行比较.
由于你的v2查询调用.ToList(),它实际上是创建结果的副本并将它们放在一个不同的变量中.因此,v2指向执行查询的结果,而v1指向可执行查询.这些完全是完全不同的对象.