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


大家好,我在asp.net mvc中遇到了一个问题。

我有两个表UsersProjects,第三个表在它们之间创建了多对多关系User_Project,但当我在visual studio中导入这些表时,没有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.ID中也有主键,在edmx文件中也有链接。

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

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

你可以做

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

请检查用户表是否有primary key

相关内容

  • 没有找到相关文章

最新更新