如何在BreezeJS元数据中定义Matrix / Link / Cross Table连接?

时间:2015-01-04 02:28:17

标签: javascript breeze sequelize.js

我试图轻松使用手工生成的元数据,但我似乎无法通过矩阵表找到涵盖导航属性的文档。

数据模型是:

Organization
PK:OrganizationID

User
PK:UserID

加入它们的表是:

User_Organization
PK:UserOrganizationID
FK:OrganizationID
FK:UserID

当我检索一个组织时,我希望它拥有一个属性" users"其中包含一个User对象数组。

如何定义这个并在Breeze元数据中指定矩阵表,因为用户没有organizationID?

**更新

我的主要问题是我将Breeze链接到Sequelize,因此我需要能够在可能的情况下通过元数据管理这一切。 @ Jeremy-Danyow下面的第一个答案解决了客户端代码的问题,但我正在寻找一种方法来将最终的对象图作为元数据的一部分呈现出来。

1 个答案:

答案 0 :(得分:1)

我认为这个问题可能与Many-to-many relations in Breeze重复。 answer中有有用的信息以及对答案的评论。

那就是说,我想提出解决这部分问题的方法:

  

当我检索一个组织时,我希望它有一个属性“users”,其中包含一个User对象数组。

如果您要配置元数据supported way,您可以向组织实体添加只读“用户”属性,如下所示:

function Organization() { }

Organization.prototype.users = function () {
    return this.userOrganizations().map(function(userOrganization) { return userOrganization.user() });
};

store.registerEntityTypeCtor('Organization', Organization);

这使用记录here的“添加构造函数的方法”方法。


修改

听起来像breeze-sequelize支持正在开发中,很快就会发布。请参阅herehere。如果你能够等到一点点,你就可以减少摩擦。