在asp.net mvc中的多对多关系中插入linq查询

时间:2016-08-04 14:18:11

标签: asp.net-mvc linq-query-syntax

大家好我在asp.net mvc遇到问题。

我有两个表UsersProjects以及第三个表,它们在User_Project中创建了多对多的关系,但是当我在visual studio中导入表时,没有{ {1}}但我可以从导航或类似User_Project访问这些值。

但是现在我只想在数据库中添加与某个项目相关的db.Users.Where(u => u.Projects.Contains(SomeUser));,我正在使用以下查询,但它不起作用。

User

希望我解释了我的问题。

  

无法更新EntitySet'User_Project',因为它有一个   定义查询并且没有元素存在于    元素支持当前   操作

我还有Project pro = db.Projects.Where(p => p.ID == x).FirstOrDefault(); pro.Users.Add(usr); db.Users.Add(usr); error line => db.SaveChanges(); Users.ID表中的主键以及edmx文件中的链接。

Projects.ID

的usermodel

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

1 个答案:

答案 0 :(得分:0)

您添加用户2次,因为它的引用类型为内存中的相同位置

你可以那样做

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

并请检查用户表是否有primary key