2013-08-30 80 views
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; } 
} 

當我保存一個新的組織和OrganizationUser實體在一個單一的SaveChanges()調用,一切都在數據庫很大,微風似乎認爲一切都成功了。 (所有Id的設置都正確,Id的回傳給Javascript,並且承諾可以解決)

但是,我的Breeze管理器中的_hasChanges保持設置爲true,導致未來的保存崩潰。我通過了Breeze代碼,出於某種原因,Breeze似乎認爲OrganizationUser仍然需要更新。

我在連接表類中做錯了什麼?

回答

0

它看起來像你試圖設置一個多對多的關係。 (即Organization-OrgUser-User)

請注意,Breeze除非具有有效載荷,否則不支持多對多。通過查看IsReadOnly屬性,我可以告訴它是有負載的m-m,但我不確定是否將FKs作爲PK。 我不得不對鏈接表PK一邊從FKS:

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

+0

謝謝!我讀過Breeze通過公開連接表來處理多對多的地方。但添加主鍵讓它起作用。 –