鉴于实体contact
和topic
,我创建了一个n strong n:n-relation ,它基本上表示每个联系人都可以成为"专家&#34 ;关于任何数量的主题,每个主题可以有任意数量的专家。
现在,我想快速确定联系人是否是专家(有主题),以便创建所有专家的过滤视图。
能够执行此操作的最简单方法是contact
上的布尔(双选项)字段,表示它具有相关主题(true
)或不具有false
) ,然后我可以使用它来过滤视图等。
这是我失败的地方。我试图将该字段设置为Rollup和Calculated,但这两种方法似乎都无法解决问题。
剩下的就是创建一个插件。但这必须在自动创建的交叉实体上注册,这似乎是不可能的。我不想自己创建一个交叉实体,因为我仍然希望拥有丰富的子网格功能等等。
是否有可能实施这种行为?
答案 0 :(得分:4)
您需要将插件注册为Associate message,primary和secondary entity为none。
在插件中,您需要检查context.MessageName
(“关联”或“取消关联”)和context.InputParameters[“Relationship”]
- 它将等于您的N:N关系的名称。
检查条件的代码就是那样
//all usual plugin stuff here
if (context.InputParameters.Contains("Relationship")) {
relationshipName = context.InputParameters["Relationship"].ToString();
}
// Check the “Relationship Name” with your intended one
if (relationshipName != "<Your relationship name>") {
return;
}
if (context.MessageName == "Associate") {
//logic when role added
}
if (context.MessageName == "Disassociate") {
//logic when role removed
}
else {
//not interested
}
我没有编译代码,但它应该让你知道如何继续。