C# Microsoft.Xrm.Sdk.EntityReference.Equals(obj)行为
此方法使用哪些字段来比较对象? 我需要一个简单的方法来确定EntityReference的两个不同实例是否引用同一个实体。如果Equals()方法适合我的需要,我不想重新发明自行车 MSDN仅表示等于回报: 如果指定的EntityReference等于EntityReference,则为true 对象否则,错误C# Microsoft.Xrm.Sdk.EntityReference.Equals(obj)行为,c#,dynamics-crm,C#,Dynamics Crm,此方法使用哪些字段来比较对象? 我需要一个简单的方法来确定EntityReference的两个不同实例是否引用同一个实体。如果Equals()方法适合我的需要,我不想重新发明自行车 MSDN仅表示等于回报: 如果指定的EntityReference等于EntityReference,则为true 对象否则,错误 部分实验表明,Equals方法比较'Id'和'LogicalName'字段,忽略'Name'。但我们没有测试所有可能的情况(EntityReference中还有一些字段) 显示6个属性(
部分实验表明,Equals方法比较'Id'和'LogicalName'字段,忽略'Name'。但我们没有测试所有可能的情况(EntityReference中还有一些字段) 显示6个属性(字段),其中只需要3个-Id(主键GUID)、名称(显示值/主属性)和逻辑名称(实体名称) 另外,Name是可为null的属性,例如:插件中的targetentity将使其为null,而preimage将使其值来自DB。其他3行版本、KeyAttributes和ExtensionData是元数据 被覆盖,其中表示: 来电者须知
派生类经常重写Object.Equals(Object)方法以实现值相等。此外,类型还经常为Equals方法提供额外的强类型重载,通常是通过实现IEquatable接口。当您调用Equals方法测试相等性时,您应该知道当前实例是否覆盖Object.Equals,并了解如何解析对Equals方法的特定调用。否则,您可能正在执行与预期不同的相等性测试,并且该方法可能返回意外值
因此,重写等值方法只考虑<强> id <强>来决定同一个实体“记录”,并且<强> LogiNeX何时确定同一个实体“类型”。
是否应该使用ID2为ReF2?不。没有错误,抱歉,我忘了删除ID2。我们打算在第二个测试用例中使用相同的ID,但不同的逻辑名称。应该有第三个测试用例,但很明显,不同的ID会导致来自Equals(…)的“false”输出