Сущность исчезает при добавлении пользователя, EF возвращает все нормально, но исчезает после завершения метода - PullRequest
0 голосов
/ 16 марта 2019

У меня есть пользователь, в котором находится массив его друзей, после того, как я добавляю в него друга, я получаю ответ обратно с другом, но после очередного вызова метода добавления друга, друг исчезает дажеперед добавлением нового.И все повторяется снова.

Моя сущность:

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

Снова и снова:

Screenshot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...