Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何向实体添加注释?_C#_.net_Visual Studio_Dynamics Crm 2011_Fakexrmeasy - Fatal编程技术网

C# 如何向实体添加注释?

C# 如何向实体添加注释?,c#,.net,visual-studio,dynamics-crm-2011,fakexrmeasy,C#,.net,Visual Studio,Dynamics Crm 2011,Fakexrmeasy,我正在尝试为此方法编写单元测试: public List<Annotation> GetNotesByOrderGuid(Guid orderGuid) { var result = _xrmServiceContext.SalesOrderSet.Where(x => x.Id == orderGuid); //!!!!! this is returning correctly 1 record, however, it shows NULL

我正在尝试为此方法编写单元测试:

    public List<Annotation> GetNotesByOrderGuid(Guid orderGuid)
    {
        var result = _xrmServiceContext.SalesOrderSet.Where(x => x.Id == orderGuid); //!!!!! this is returning correctly 1 record, however, it shows NULL for the list of annotations
        //do some stuff and return a list of annotations
    }

公共列表

不会自动检索相关实体。作为查询的一部分,您必须请求它们。我不知道使用LINQ是否可以做到这一点。可以使用
QueryExpression
()完成此操作。也就是说,如果它是一个LINQ查询,您只需要加入注释并创建一个新对象就可以了。您需要与注释实体进行连接,默认情况下,它将仅提取salesorder记录。
    private XrmFakedContext _fakeContext;

    [NotNull]
    private IOrganizationService _fakeOrganizationService;

    [Test]
    public void GetNotesByOrderGuid_ExistingRecordHavingNotes_ReturnsListOfThoseNotes()
    {
        using (var xrmServiceContext = new XrmServiceContext(_fakeOrganizationService))
        {
            // Arrange
            var salesOrderGuid = Guid.NewGuid();
            var salesOrder = new SalesOrder { Id = salesOrderGuid };
            var note1 = new Annotation
                            {
                                Id = Guid.NewGuid(),
                                NoteText = "this is note1",
                                ObjectId = new EntityReference(SalesOrder.EntityLogicalName, salesOrderGuid),
                                ObjectTypeCode = salesOrder.LogicalName
                            };
            var note2 = new Annotation
                            {
                                Id = Guid.NewGuid(),
                                NoteText = "this is note2",
                                ObjectId = new EntityReference(SalesOrder.EntityLogicalName, salesOrderGuid),
                                ObjectTypeCode = salesOrder.LogicalName
                            };

            _fakeContext.Initialize(new List<Entity> { salesOrder, note1, note2});
            var sut = new SalesOrderService(xrmServiceContext);

            // Act
            // Assert
            Assert.That(sut.GetNotesByOrderGuid(salesOrderGuid), Is.InstanceOf<List<Annotation>>());
        }
    }

    [SetUp]
    public void Init()
    {
        _fakeContext = new XrmFakedContext { ProxyTypesAssembly = Assembly.GetAssembly(typeof(SalesOrder)) };
        _fakeOrganizationService = _fakeContext.GetFakedOrganizationService();
    }