Sequelize - 我必须在模型和查询中指定 "as" 吗?

Sequelize - do I have to specify "as" in both model and query?

这似乎是多余的,并迫使我在两个位置对相同的字符串进行硬编码 - 或者将其粘贴到必须传递的变量中。无论哪种方式,如果我在我的模型中指定关系的“as”,为什么我必须稍后在查询时使用相同的“as”调用它属性?

我的关系:

organization.hasMany(client, { as: "Clients", foreignKey: "organization_id" });
client.belongsTo(organization, { as: "AuthOrganization", foreignKey: "organization_id" });

查询:

    let data = await client.findOne({
        include: [{ model: organization, as: "AuthOrganization" }]
    }, { raw: true });

如果我省略相同的“as”属性,系统会抛出一个错误提示我将它放在那里。我是 Sequelize 的新手,但似乎是这样,因为“as”可用于识别不明确的关系。但是,您在模型中设置的值似乎是一个合理的默认值,不是吗?

我真正想要的是这个,当我写查询时:

    let data = await client.findOne({
        include: organization
    }, { raw: true });

我这样做只是为了避免混合函数名称中的自动下划线。我无法忍受这个令人讨厌的“addAuth_organization”函数名,而且我也找不到解决这个问题的另一种方法。

我会认为这是“是”。