首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft.Xrm.Sdk.EntityReference.Equals(obj)行为

Microsoft.Xrm.Sdk.EntityReference.Equals(obj)行为
EN

Stack Overflow用户
提问于 2018-01-25 16:46:13
回答 2查看 1K关注 0票数 4

这个方法用来比较对象的字段是什么?我需要一个简单的方法来确定两个不同的EntityReference实例是否引用同一个实体。我也不想再发明一辆自行车,如果满足我的需要。

MSDN只表示等于返回:

如果指定的EntityReference等于EntityReference对象,则为true;否则为false。

EN

回答 2

Stack Overflow用户

发布于 2018-01-25 16:46:13

部分实验表明,等于方法比较了'Id‘和'LogicalName’字段,忽略了'Name‘。但是我们并没有测试所有可能的情况(EntityReference中还有更多的字段)。

票数 5
EN

Stack Overflow用户

发布于 2018-02-10 23:30:27

用于EntityReference的MSDN显示6个属性(字段),其中只需要3- Id (主键GUID)、名称(显示值/主属性)和逻辑名称(实体名)。

另外,名称是可空属性,例如:插件中的the将使其为null,而preimage将从DB获取值。其他3- RowVersion、KeyAttributes和ExtensionData是元数据.

EntityReference.Equals(对象)Object.Equals(对象)中被重写,它说:

来电者须知 派生类经常重写Object.Equals(Object)方法以实现值相等。此外,类型还通常通过实现IEquatable接口向Equals方法提供额外的强类型重载。当您调用等于方法来测试是否相等时,您应该知道当前实例是否重写了Object.Equals,并了解了如何解析特定的对等于方法的调用。否则,您可能正在执行与预期不同的相等性测试,并且该方法可能返回意外值。

因此,重写的Equals方法只考虑Id来决定相同的实体“record”,而LogicalName则在等号时决定相同的实体“类型”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48448009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档