微风多对多的例子需要

时间:2013-08-30 18:26:58

标签: many-to-many breeze

我的联接表/类看起来像这样:

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,并且承诺解决得很好)

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

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

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试设置多对多关系。 (即Organization-OrgUser-User)

请注意,除非有有效负载,否则Breeze不支持多对多。通过查看IsReadOnly属性,我可以告诉它是有效载荷的m-m,但我不确定将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