8

EF5 Code First を使用してモデル atm のいくつかを定義しています。多対多の関係を持つ次の 3 つのサンプル クラスがあります。

public class Team
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Team_Id { get; set; }
        [MaxLength(150)]
        public string TeamName { get; set; }

        public virtual ICollection<User> Users { get; set; }
        [public virtual ICollection<Role> Roles { get; set; }  // 1

        [Timestamp]
        public byte[] TimeStamp { get; set; }
    }

public class User
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int User_Id { get; set; }
        [MaxLength(150)]
        public string LoginName { get; set; }
        [MaxLength(150)]
        public string Nachname { get; set; }
        [MaxLength(150)]        
        public string Vorname { get; set; }

        public virtual ICollection<Team> Teams { get; set; } 
        public virtual ICollection<Role> Roles { get; set; }   // 2

        [Timestamp]
        public byte[] TimeStamp { get; set; }
    }

public class Role
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Role_Id { get; set; }
        [MaxLength(50)]
        public string RoleName { get; set; }

        [Timestamp]
        public byte[] TimeStamp { get; set; }
    }

ご覧のとおり、チームとユーザーの間には多対多の関係があります。私はこれを何時間も働かせようとしています。VS 2012 で「bad nav properties」というエラー メッセージを含む JS Exception が常に発生します。問題は、1) と 2) の 2 つの呼び出しにあるようです。どちらかを削除すると機能します。1 つの名前を変更し、両方のフィールドをアクティブのままにすると、エラーがスローされます。多分誰でも何が起こっているのか知っています。

どうもありがとう

この質問は、SirSmackalot によって IdeaBlade フォーラムに投稿されました。Breeze Stack Overflow コミュニティに役立つと思うので、ここに質問と回答を再投稿します。

4

1 に答える 1

14

Breeze は、マッピング テーブルが隠されている多対多の関係をまだサポートしていません。問題は、Breeze が関係を追跡するために「外部キー」の概念に依存していることです。これは、Entity Framework でペイロードなしで定義された多対多の関係では使用できません。

機能するのは、多対多の関係をリンク エンティティを持つ 2 つの 1 対多の関係に変更することです。基本的には、マッピング テーブルを別のエンティティ タイプとして公開するだけです。例えば:

チーム -- TeamUser (1 対多)

ユーザー -- TeamUser (1 対多)

今後のリリースで Entity Framework の公式の多対多の関係をサポートする予定ですが、これを優先する必要があります。そのため、ウェブサイト ( https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions/filters/top )のフィードバック メカニズムを使用して、この機能リクエストに追加/投票してください。これは、次に重点を置く機能を決定するのに役立ちます。

于 2012-11-29T23:13:57.267 に答える