微软Dynamics 365中多个Account/Contact能否共享Customer Address
关于Account与CustomerAddress实体关联逻辑的解答
1. 关联关系流向说明
两类双向关联同时存在:
- Account实体的
AddressId(常见为Address1Id/Address2Id这类对应不同地址类型的字段)为外键,直接引用CustomerAddress实体的主键,属于Account引用CustomerAddress的关联,用于快速定位账号绑定的默认地址 - CustomerAddress实体的
ParentId为多态查找字段,取值为AccountId或ContactId,用于标记该地址归属的父级主体,是CustomerAddress指向所属Account/Contact的反向关联
2. 相同地址跨主体创建的复用逻辑
系统默认逻辑下不会复用已有AddressId,会为新的Account/Contact创建全新的CustomerAddress记录。
CustomerAddress的核心归属逻辑由ParentId决定,不同主体的地址即使内容完全一致,也属于独立的归属对象,默认不会共享地址记录;除非你自行配置了自定义的地址去重规则,才会触发复用逻辑。
3. 全字段匹配的记录生成逻辑
只要是为不同的Account/Contact创建地址,即使所有字段值(包括地址、电话等所有属性)完全一致,系统默认仍会生成新的CustomerAddress记录,不同记录通过ParentId区分所属主体,互不干扰。
你提到的“仅电话号码不同就生成新记录”一般是同个主体下创建多个地址的校验逻辑,该逻辑不影响跨主体的地址记录生成规则。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

