0

我的联接表/类如下所示:

public class OrganizationUser
{
    [Key, Column(Order = 0)]
    public int OrganizationId { get; set; }

    public virtual Organization Organization { get; set; }

    [Key, Column(Order = 1)]
    public int UserId { get; set; }

    public virtual User User { get; set; }

    public bool IsReadOnly { get; set; }
}

当我在单个 saveChanges() 调用中保存一个新的 Organization 和 OrganizationUser 实体时,数据库中的一切都很好,Breeze 似乎认为一切都成功了。(所有 ID 都设置正确,ID 被传递回 Javascript,并且 promise 解决得很好)

但是,我的 Breeze 管理器中的 _hasChanges 保持设置为 true,导致未来的保存崩溃。我逐步浏览了 Breeze 代码,出于某种原因,Breeze 似乎认为 OrganizationUser 仍然需要更新。

我在联接表类中做错了吗?

4

1 回答 1

0

看起来您正在尝试设置多对多关系。(即组织-组织用户-用户)

请注意,Breeze 不支持多对多,除非它具有有效负载。通过查看 IsReadOnly 属性,我可以判断它是带有有效负载的 mm,但我不确定是否将 FK 作为 PK。除了 FK 之外,我还有一个链接表的 PK:

public class OrganizationUser {
    [Key]
    public int Id { get; set; }

    public int OrganizationId { get; set; }
    public Organization Organization { get; set; }

    public int UserId { get; set; }
    public User User { get; set; }

    public bool IsReadOnly { get; set; }
}

您可能想看看http://www.breezejs.com/documentation/navigation-properties

于 2013-08-30T19:40:04.393 回答