我的联接表/类看起来像这样:
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。
我在连接表类中做错了吗?
答案 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。