实体框架未经我许可更改字段

问题描述 投票:0回答:1

我遇到一个问题,当我在列表用户中添加

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);
c# entity-framework
1个回答
0
投票

我发现了错误。我的数据库关系配置错误,当我更改房间中的用户时,Adm 被替换为该用户。这是因为数据库关系而发生的。

© www.soinside.com 2019 - 2024. All rights reserved.