我遇到一个问题,当我在列表用户中添加
Adm
实体时,实体框架会更改 AdmId
和 User
字段。
这是我的桌子
Room
:
public class Room
{
public Guid Id { get; set; } = Guid.NewGuid();
[Required]
[StringLength(100)]
public string Name { get; set; }
// um para muitos:
[Required]
public User Adm { get; set; }
[Required]
public int AdmId { get; set; }
[StringLength(150)]
public string? Description { get; set; }
public bool IsPrivate { get; set; } = default;
public string? Password { get; set; }
public DateTime CreateDate { get; set; } = DateTime.Now;
// um para muitos:
public List<Message>? Messages { get; set; } = new List<Message>();
// um para muitos:
[JsonIgnore]
public List<User>? Users { get; set; } = new List<User>();
public List<string>? UserName { get; set; } = new List<string>();
}
这是我在房间中添加新用户的代码:
try
{
participeData.Room.UserName.Add(participeData.User.Name);
participeData.Room.Users.Add(participeData.User);
participeData.User.RoomsNames.Add(participeData.Room.Name);
participeData.User.Rooms.Add(participeData.Room);
await context.SaveChangesAsync();
}
我正在尝试将新用户添加到房间中。冲突在于,当我添加命令时,
Adm
和AdmId
字段发生了更改
participeData.Room.UserName.Add(participeData.User.Name);
participeData.Room.Users.Add(participeData.User);
participeData.User.RoomsNames.Add(participeData.Room.Name);
participeData.User.Rooms.Add(participeData.Room);
我发现了错误。我的数据库关系配置错误,当我更改房间中的用户时,Adm 被替换为该用户。这是因为数据库关系而发生的。