Проблема с заполнением данных?

Здравствуйте! Извините за кривое название вопроса, я не знал как точно это описать.
Учусь делать API.
У меня есть модели
User
public class User
    {
        public User()
        {
            this.Accounts = new HashSet<Account>();
        }
        public int Id { get; set; }
        public string TelegramUserId { get; set; }
        public virtual ICollection<Account> Accounts { get; set; }

    }


Account
public string Id { get; set; }
        public string SteamId { get; set; }
        public User User { get; set; }
        
        public Inventory? Inventory { get; set; }


Inventory
public int Id { get; set; }
        public string ItemName { get; set; }
        public int AccountId { get; set; }
        public Account? Account { get; set; }


У User'a может быть много аккаунтов, а у аккаунтов только один User.
У аккаунта может быть только один инвентарь, а у инвентаря может быть только один аккаунт.

По идее , юзер сперва вводит данные своего аккаунта TelegramUserId и SteamId .
Вот я получил данные от юзера, обработал их и теперь POST запросом хочу отправить в базу. Получил я следующие данные.
TelegramUserId и SteamId
Использую EF.

Делаю вот так, получается ошибка.

var user = new User
            {
                TelegramUserId = addSteamAccount.TelegramId,
                Accounts = new Account
                {
                    SteamId = addSteamAccount.SteamId
                };
            }


Помогите, пожалуйста, у меня просто нету идей как это делать. Спасибо.
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
Поиграю в угадайку. Видимо, у тебя ошибка на моменте, когда ты пытаешься присвоить свойству Accounts объект Account.
Причина ошибки очевидна - ты сам объявил, что Accounts имеет тип HashSet`Account.

Вот вариант исправленного кода:
var user = new User
            {
                TelegramUserId = addSteamAccount.TelegramId,
            };
user.Accounts.Add(new Account { SteamId = addSteamAccount.SteamId });


В будущем пиши, какая конкретно ошибка у тебя произошла и постарайся изолировать свою ошибку от всего остального проекта, ибо EF тут никаким боком не влияет, как и то что ты делаешь API, и то что у тебя есть ещё класс Inventory.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы