我的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
,然后只有User2
会Room
< / 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
。
我的代码出了什么问题,我该怎么做才能实现它?