如何在 BreezeJS 元数据中定义矩阵/链接/交叉表连接

How to define Matrix/Link/Cross Table joins in BreezeJS Metadata?

本文关键字:链接 交叉表 连接 定义 BreezeJS 元数据      更新时间:2023-09-26

我正在尝试轻松处理手动生成的元数据,但我似乎找不到通过矩阵表涵盖导航属性的文档。

数据模型为:

Organization
PK:OrganizationID
User
PK:UserID

连接它们的表是:

User_Organization
PK:UserOrganizationID
FK:OrganizationID
FK:UserID

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

如何定义它并在 Breeze 元数据中指定矩阵表,因为用户没有组织 ID?

**更新

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

我认为

这个问题可能是微风中多对多关系的重复。 那里的答案中有有用的信息以及对答案的评论。

也就是说,我想为您的问题的这一部分提出一个解决方法:

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

如果要以受支持的方式配置元数据,则可以将只读"users"属性添加到组织实体,如下所示:

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

这使用此处记录的"将方法添加到构造函数"方法。


编辑

听起来微风续集支持正在开发中,很快就会发布。 看这里和这里。 如果你能等一会儿,你就会减少摩擦。