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つのエンティティをリンクする必要はありませんか?