0

理解できない複雑な 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);
        }



よろしくお願いします、
アンソニー

4

0 に答える 0