У меня есть пользователь, в котором находится массив его друзей, после того, как я добавляю в него друга, я получаю ответ обратно с другом, но после очередного вызова метода добавления друга, друг исчезает дажеперед добавлением нового.И все повторяется снова.
Моя сущность:
public class RegistrationUser
{
[Key]
public int PMId { get; set; }
[Required]
[Column(TypeName ="varchar(16)")]
public string UserName { get; set; }
[Required]
[Column(TypeName = "varchar(16)")]
public string Password { get; set; }//не должен использ в ответе только токен
[Column(TypeName = "varchar(480)")]
public string Token { get; set; }
public List<ListFriend> ListFriends { get; set; }
public RegistrationUser()
{
ListFriends = new List<ListFriend>();
}
}
Друзья:
public class ListFriend
{
[Key]
public int UserId { get; set; }
[Required]
[Column(TypeName ="varchar(16)")]
public string UserFriendName { get; set; }
public List<MessagesDetail> MessagesDetails { get; set; }
public ListFriend()
{
MessagesDetails = new List<MessagesDetail>();
}
}
Метод кода:
[Authorize]
[HttpPost("AddFriendToUser")]
public async Task<ActionResult<RegistrationUser>> AddFriend([FromBody]string newFriend)
{
var pdetails = _context.RegistrationUsers
.SingleOrDefault(c => c.UserName == User.Identity.Name);
if (pdetails == null )
{
return BadRequest();
}
var existFriend = _context.RegistrationUsers
.SingleOrDefault(c => c.UserName == newFriend);
if (existFriend == null)
{
return BadRequest( );
}
var AddFrend = new ListFriend { UserId = 0,UserFriendName = newFriend, MessagesDetails = {}};
_context.RegistrationUsers.Find(pdetails.PMId).ListFriends.Add(AddFrend);
await _context.SaveChangesAsync();
return pdetails;
}
Без измененийвернулся, только 1 объект, который был только что добавлен, после повторного вызова метода список с друзьями пуст.
![Screenshot](https://i.stack.imgur.com/3bsez.png)
Снова и снова:
![Screenshot](https://i.stack.imgur.com/pk91e.png)