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; }
}

新しい Organization および OrganizationUser エンティティを 1 回の saveChanges() 呼び出しで保存すると、データベース内のすべてが正常に機能し、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 に答える