理解できない複雑な M:M:M クエリがあります。私の場合: 特定のトレーニングから、研修生に関連するすべての追加費用を取得する必要があります。
関係は次のとおりです。
- 研修生 <-> 研修 M:M
- 研修生 <-> 追加費用 M:M
- トレーニング <-> 追加費用 1:M
私のコードは現在次のようになっていますが、これが正しい方法かどうかさえわかりません。
if (context.MessageName == "Update" && context.Stage == 20)
{
targetEntity = context.InputParameters["Target"] as Entity;
var courseID = targetEntity.Id;
QueryExpression Query = new QueryExpression { EntityName = "cref8_extrakost", ColumnSet = new ColumnSet(true) };
// LINK BETWEEN A TRAINING AND A CURSIST
LinkEntity TrainingCursist = new LinkEntity
{
LinkFromEntityName = "cref8_cursist",
LinkToEntityName = "cref8_opleiding_cref8_cursist",
LinkFromAttributeName = "cref8_cursistid",
LinkToAttributeName = "cref8_cursistid",
Columns = new ColumnSet(true),
JoinOperator = JoinOperator.Inner
};
TrainingCursist.LinkCriteria.AddCondition("cref8_opleidingid", ConditionOperator.Equal, courseID);
// LINK BETWEEN A CURSIST AND A EXTRA COST
LinkEntity ExtraCostCursist = new LinkEntity
{
LinkFromEntityName = "cref8_extrakost",
LinkToEntityName = "cref8_extrakost_cref8_cursist ",
LinkFromAttributeName = "cref8_extrakost",
LinkToAttributeName = "cref8_cursistid",
JoinOperator = JoinOperator.Inner,
Columns = new ColumnSet(true)
};
ExtraCostCursist.LinkCriteria.AddCondition("cref8_cursistid", ConditionOperator.Equal, "34b5de6b - 0758 - ec11 - 8f8f - 000d3aad43bd");
Query.LinkEntities.Add(TrainingCursist);
Query.LinkEntities.Add(ExtraCostCursist);
var collection = service.RetrieveMultiple(Query);
}
よろしくお願いします、
アンソニー