Не добавляются элементы в бд

Рейтинг: 0Ответов: 1Опубликовано: 14.02.2023

Application User

public class ApplicationUser : IdentityUser
{
    public List<Category> Categories { get; set; } = new();
    public List<Todo> Todos { get; set; } = new();
}

Category

public class Category
{
    public int CategoryId { get; set; }
    public string Name { get; set; } = null!;
    
    public ApplicationUser ApplicationUser { get; set; }
    public List<Todo> Todos { get; set; } = new();
}

Метод добавляет категорию в бд, но её нельзя получить из ApplicationUser

[HttpPost] public async Task AddCategory(string categoryName) { var user = await _userManager.FindByNameAsync(HttpContext.User.Identity!.Name);

    var a = await _db.Users.FindAsync(user.Id);
    
    await _db.Categories.AddAsync(new Category()
    {
        Name = categoryName,
        ApplicationUser = a
    });

    await _db.SaveChangesAsync();
}

[HttpGet]
public async Task<IEnumerable<Category>> GetAll()
{
    var user = await _userManager.FindByNameAsync(HttpContext.User.Identity!.Name);
    return _db.Users.FindAsync(user.Id).Result!.Categories;
}

Ответы

▲ 0

У вас нет в коде добавления категории в список категорий пользователя, измените код например на:

var a = await _db.Users.FindAsync(user.Id);

var newCategory = new Category()
{
    Name = categoryName,
    ApplicationUser = a
};

await _db.Categories.AddAsync(newCategory);
await _db.SaveChangesAsync();

// Добавление новой категории в список категорий пользователя
a.Categories.Add(newCategory);
await _db.SaveChangesAsync();