无法更新Entity Framework Core中多对多关系实体的数据

时间:2018-03-05 10:33:49

标签: c# entity-framework-core

我的DbContext有以下实体模型。

public class User
{
    [Key]
    public string UserName { get; set; }
    public List<Connection> Connections { get; set; }
    public virtual List<Room> Rooms { get; set; }
}
public class Room
{
    [Key]
    public string RoomName { get; set; }
    public virtual ICollection<User> Users { get; set; }
}

问题是,当我尝试将Room从一个用户添加到另一个用户时User我的意思是一个Room用于两个不同的用户然后我得到Room仅用于最后一位用户和Room从第一位用户Room中自动删除了User1。例如。 Room有一个名为myRoom的{​​{1}},我正在尝试将空间添加到User2,然后只有User2Room < / p>

我尝试使用下面的代码。

var user = _context.Users.Include(u => u.Rooms).SingleOrDefault(u => u.UserName == who);
var room = _context.Rooms.Include(r => r.Users).SingleOrDefault(r => r.RoomName == groupName);

 user.Rooms.Add(room);
 _context.ChatUsers.Update(user);
 room.Users.Add(user);
 _context.Rooms.Update(room);
 await _context.SaveChangesAsync();

修改

我发现给用户增加空间的问题。

user.Rooms.Add(room);
_context.ChatUsers.Update(user);

但是用户已使用旧版Room成功添加到Users

我的代码出了什么问题,我该怎么做才能实现它?

0 个答案:

没有答案