나는 두 조건의 평등을 결정하기 위해 노력하고있어 :C# 술어 매개 변수 내의 값을 검사하는 방법? - 결정 술어 평등
public T FirstOrDefault(Func<T, bool> predicate)
{
if (EntityCache.ContainsKey(predicate.GetHashCode()))
return EntityCache[predicate.GetHashCode()];
else
{
var entity = _objectSet.FirstOrDefault<T>(predicate);
EntityCache.Add(predicate.GetHashCode(), entity);
return entity;
}
}
난 데 문제는, 그 안에 사용되는 값을 고려하지 않는 술어의 해시 코드이며, 내가 그들을 검색하는 방법에 대해 잘 모르겠습니다.
예를 들어 위에 나온 메소드에 전달 된 조건문은 다음과 같습니다. (r => r.Id == id) FirstOrDefault 메소드에서 'id'값을 찾는 방법은 무엇입니까?
왜 당신이 원하는 않는 사용하는 것이 좋을 것이다 있습니다
EntityCache
에서 그와 함께 대표단에 전달 된 값을 유지하고있다 에? 'Func그 대답은 다음과 같이 쉽게 할 수있는 방법이 없다는 것입니다. 어떤 술어를 전달하는 유연성을 유지하고 그 술어와 값 집합이 이전에 전달 된 것과 동일한지를 결정할 수 있기를 원하기 때문입니다. – BrooklynDev