0

こんにちは皆さん、asp.net mvc で問題に直面しています。

2 つのテーブルUsersProjects3 つ目のテーブルがあり、多対多の関係を作成しますUser_Projectが、ビジュアル スタジオにテーブルをインポートすると、テーブルはありませんがUser_Project、ナビゲーションなどから値にアクセスできますdb.Users.Where(u => u.Projects.Contains(SomeUser));

Userしかし今、あるプロジェクトに関連するデータベース に追加したいだけで、次のクエリを使用していますが、機能していません。

Project pro = db.Projects.Where(p => p.ID == x).FirstOrDefault();
                        pro.Users.Add(usr);
                        db.Users.Add(usr);
          error line => db.SaveChanges();    

私が私の問題を説明したことを願っています。

EntitySet 'User_Project' を更新できません。DefiningQuery があり、現在の操作をサポートする要素が要素に存在しないためです。

また、両方のテーブルに主キーがありUsers.IDProjects.IDedmx ファイルにもリンクがあります。

<AssociationConnector Association="BugMesh_Model.User_Project" ManuallyRouted="false" />

ユーザーモデル

    public partial class User
{
    public User()
    {
        this.Bugs = new HashSet<Bug>();
        this.Bugs1 = new HashSet<Bug>();
        this.Projects = new HashSet<Project>();
    }

    public int ID { get; set; }
    public string UserName { get; set; }
    public string FName { get; set; }
    public string LName { get; set; }
    public string Password { get; set; }
    public string Email { get; set; }
    public string Role { get; set; }

    public virtual ICollection<Bug> Bugs { get; set; }
    public virtual ICollection<Bug> Bugs1 { get; set; }
    public virtual ICollection<Project> Projects { get; set; }
}

プロジェクトモデル

    public partial class Project
{
    public Project()
    {
        this.Bugs = new HashSet<Bug>();
        this.Components = new HashSet<Component>();
        this.Users = new HashSet<User>();
    }

    public int ID { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public string Status { get; set; }
    public Nullable<System.DateTime> CreationDate { get; set; }

    public virtual ICollection<Bug> Bugs { get; set; }
    public virtual ICollection<Component> Components { get; set; }
    public virtual ICollection<User> Users { get; set; }
}
4

1 に答える 1

0

メモリ内の同じ場所への参照型であるため、ユーザーを2回追加します

出来るよ

      pro.Users.Add(usr);
      db.SaveChanges();  

ユーザーテーブルに primary key

于 2016-08-04T14:38:33.687 に答える