首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CRM 2016 FakeXrmEasy N:N关系

CRM 2016 FakeXrmEasy N:N关系
EN

Stack Overflow用户
提问于 2016-05-19 08:27:12
回答 1查看 2.8K关注 0票数 5

我正在尝试使用FakeXrmEasy为CRM (2016)执行一些单元测试,而且我在建立N:N关系测试时遇到了问题。

以下代码设置包含两个实体的伪造上下文,并初始化伪造的组织服务:

代码语言:javascript
复制
var entity1 = new New_entityOne();
var entity2 = new New_entityTwo();

var context = new XrmFakedContext();
context.ProxyTypesAssembly = Assembly.GetAssembly(typeof(New_entityOne));
context.Initialize(new List<Entity>()
{
    entity1,
    entity2
});

var service = context.GetFakedOrganizationService();

然后,我尝试在这些实体之间创建N:N关系:

代码语言:javascript
复制
var join = new AssociateRequest
{
    Relationship = new Relationship
    {
        SchemaName = "new_entityOne_new_entityTwo",
        PrimaryEntityRole = EntityRole.Referenced
    },
    Target = entity1.ToEntityReference(),
    RelatedEntities = new EntityReferenceCollection
    {
        entity2.ToEntityReference()
    }
};

service.Execute(join);

当我执行这个Request时,我期望在模拟数据中生成一个N:n连接记录,在entity1entity2之间。

相反,我得到了这样一个错误:

“System.Exception”类型的异常发生在FakeXrmEasy.dll中,但未在用户代码中处理 附加信息:元数据缓存中不存在关系new_entityOne_new_entityTwo

有没有其他人尝试过以这种方式使用这个单元框架?在此之前,我一直在使用它取得很好的效果。

显然,这些不是我实际的实体和关系名称。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-19 11:57:54

请尝试添加一个假关系,如这里所示

这是因为对于N:1没有交叉表,连接是通过一个EntityReference执行的,仅此而已,但是对于许多人来说,由于有一个互节表,我们现在需要告诉框架如何处理这个场景。

还有一个更新,它不再强制使用ProxyTypesAssembly,只要您使用早期绑定类型,代理类型程序集将从您的类型“猜测”。

所以你可以把这个

代码语言:javascript
复制
context.ProxyTypesAssembly = Assembly.GetAssembly(typeof(New_entityOne));

我需要更新网站上的文件..。无论何时我有机会:)

编辑

网站更新:http://dynamicsvalue.com/get-started/nn-relationships

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37317808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档