gpt4 book ai didi

c# - 使用 fakexrmeasy 创建链接数据

转载 作者:太空宇宙 更新时间:2023-11-03 21:04:24 26 4
gpt4 key购买 nike

如何在 FakeXrmEasy 中创建一个实体并将另一个实体链接到它?

我正在尝试测试这段代码:

    public List<abc_OrderTask> GetTasks(Guid workOrderGuid)
{
var result = (from task in _xrmServiceContext.abc_OrderTaskSet
join workOrder in _xrmServiceContext.abc_workorderSet
on task.RegardingObjectId.Id equals workOrder.Id
where workOrder.Id == workOrderGuid
select task).ToList();

return result;
}

abc_OrderTask 和 abc_WorkOrder 之间的关系是 N:1

在我的测试中,我试图链接这两个实体:

    [Test]
public void GetTasks_WorkOrderWithExistingTasks_ReturnsListOfTasks()
{
using (var xrmServiceContext = new XrmServiceContext(_fakeOrganizationService))
{
var workOrderGuid = Guid.NewGuid();
var taskGuid = Guid.NewGuid();
var workOrder = new abc_workorder { Id = workOrderGuid };
var task = new abc_OrderTask
{
Id = taskGuid,
Subject = "Required subject",
RegardingObjectId =
new EntityReference(abc_workorder.EntityLogicalName, workOrderGuid)
};
_fakeContext.Initialize(new List<Entity> { workOrder, task });

var sut = new WorkOrderService(xrmServiceContext);

// Act
// Assert
Assert.That(sut.GetTasks(workOrderGuid), Is.InstanceOf<List<abc_OrderTask>>());
Assert.That(sut.GetTasks(workOrderGuid).Count.Equals(1));
}
}

但是,结果集是空的。

如何在 FakeXrmEasy 中创建一个实体并将另一个实体链接到它?

下面是这个对象是如何更新的:

    private IOrganizationService _fakeOrganizationService;

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

最佳答案

abc_OrderTask 是自定义事件。事件是相关对象 (abc_workorder) 的子记录,由 abc_OrderTask.RegardObjectId 定义。看来这在您的测试数据中设置正确。

正在测试的方法 GetTasks 正在基于从 abc_workorderabc_OrderTask 的自定义 N:1 关系进行查询,查找字段名为 abc_workorder_abc_OrderTasks .

您需要修复 GetTasks 以通过 RegardingObjectId.Id 过滤 abc_OrderTask

关于c# - 使用 fakexrmeasy 创建链接数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42255941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com