Torna al Thread
private static bool InternalEquals(EntityKey key1, EntityKey key2)
{
if (object.ReferenceEquals(key1, key2))
{
return true;
}
if (object.ReferenceEquals(key1, null) || object.ReferenceEquals(key2, null))
{
return false;
}
if (key1.RequiresDeserialization)
{
key1.DeserializeMembers();
}
else if (key2.RequiresDeserialization)
{
key2.DeserializeMembers();
}
if (key1._singletonKeyValue != null)
{
if (!key1._singletonKeyValue.Equals(key2._singletonKeyValue) || !string.Equals(key1._keyNames[0], key2._keyNames[0]) || !string.Equals(key1._entityContainerName, key2._entityContainerName))
{
return false;
}
return string.Equals(key1._entitySetName, key2._entitySetName);
}
if (key1._compositeKeyValues == null || key2._compositeKeyValues == null || !string.Equals(key1._entityContainerName, key2._entityContainerName) || !string.Equals(key1._entitySetName, key2._entitySetName) || (int)key1._compositeKeyValues.Length != (int)key2._compositeKeyValues.Length)
{
return false;
}
return EntityKey.ComplexKeyValuesEqual(key1, key2);
}