2017-03-06 7 views
0

私が受注に注釈をリンクする方法を持っている:リンクされたメモを照会する方法は?

/// <summary> Links. </summary> 
    /// <param name="noteGuid">   Unique identifier for the note. </param> 
    /// <param name="salesOrderGuid"> Unique identifier for the sales order. </param> 
    /// <returns> A SalesOrder. </returns> 
    public SalesOrder Link(Guid noteGuid, Guid salesOrderGuid) 
    { 
     var associateRequest = new AssociateRequest 
            { 
             Target = 
              new EntityReference(
               SalesOrder.EntityLogicalName, 
               salesOrderGuid), 
             RelatedEntities = 
              new EntityReferenceCollection 
               { 
                new EntityReference(
                 Annotation 
                  .EntityLogicalName, 
                 noteGuid) 
               }, 
             Relationship = new Relationship("SalesOrder_Annotation") 
            }; 

     _xrmServiceContext.Execute(associateRequest); 

     return GetSalesOrderByOrderGuid(salesOrderGuid); 
    } 

私は次のテストで、この方法でユニットテストしようとしています:

[Test] 
    public void Link_ExistingRecordHavingNotes_LinksItemCorrectly() 
    { 
     using (var xrmServiceContext = new XrmServiceContext(_fakeOrganizationService)) 
     { 
      // Arrange 
      var salesOrderGuid = Guid.NewGuid(); 
      var note1 = new Annotation { Id = Guid.NewGuid(), Subject = "this is note1" }; 
      var salesOrder = new SalesOrder 
           { 
            Id = salesOrderGuid 
           }; 

      _fakeContext.Initialize(new List<Entity> { salesOrder, note1 }); 

      this._fakeContext.AddRelationship(
       "SalesOrder_Annotation", 
       new XrmFakedRelationship 
        { 
         Entity2LogicalName = "annotation", 
         Entity2Attribute = "salesorderid", 
         Entity1LogicalName = "salesorder", 
         Entity1Attribute = "SalesOrder_Annotation.Id", 
         RelationshipType = XrmFakedRelationship.enmFakeRelationshipType.OneToMany 
        }); 

      var sut = new SalesOrderService(xrmServiceContext); 

      // Act 
      var linkedRecord = sut.Link(note1.Id, salesOrderGuid); 

      var annotations = xrmServiceContext.AnnotationSet.FirstOrDefault(note => note.ObjectId.Id == salesOrderGuid); 

...

なぜannotationsがnullであるかわかりません。 上記の関連リクエストを使用してエンティティを別のエンティティにリンクすると、ObjectId経由で2つのエンティティをリンクする必要はありませんか?

答えて

関連する問題