Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894

Не добавляется обьект в бд

28.01.2025, 01:38. Показов 1631. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
OnModelCreating в ApplicationContext:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            // Report
            modelBuilder.Entity<Report>()
                .HasKey(r => r.Id);
 
            modelBuilder.Entity<Report>()
                .HasOne(r => r.Suspect)
                .WithMany(u => u.Reports)
                .HasForeignKey(r => r.SuspectId)
                .OnDelete(DeleteBehavior.Restrict);
 
            modelBuilder.Entity<Report>()
                .HasOne(r => r.Sender)
                .WithMany()
                .HasForeignKey(r => r.SenderId)
                .OnDelete(DeleteBehavior.Restrict);


Report:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Report
{
    [Key]
    public Guid Id { get; set; } = Guid.NewGuid();
 
    [ForeignKey("SenderId")]
    public User Sender { get; set; }
    public Guid SenderId { get; set; }
 
    [ForeignKey("SuspectId")]
    public User Suspect { get; set; }
    public Guid SuspectId { get; set; }
 
    public string Reason { get; set; } = string.Empty;
 
    public string Description { get; set; } = string.Empty;
 
    public DateTime ReportDate { get; set; } = DateTime.UtcNow;
}

User:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class User
{
    [Key]
    public Guid Id { get; set; } = Guid.NewGuid();
 
    public ulong SteamID { get; set; }
    public string UserName { get; set; } = "Unknown";
    public Role UserRole { get; set; } = Role.User;
 
    public ICollection<Report> Reports { get; set; } = new List<Report>();
 
    public enum Role
    {
        User,
        Moderator,
        Admin
    }
}


При попытке добавить Report в Reports, в этом блоке:
C#
1
2
3
4
5
6
7
8
9
10
11
        public async Task AddReportAsync(Report report)
        {
            User? user = await _context.Users
                .Include(u => u.Reports)
                .FirstOrDefaultAsync(u => u.Id == report.SuspectId);
            if (user == null) throw new InvalidOperationException("Suspect user is null!");
 
            user.Reports.Add(report);
 
            await _context.SaveChangesAsync();
        }
Возникает ошибка при сохранении: The database operation was expected to affect 1 row(s), but actually affected 0 row(s); data may have been modified or deleted since entities were loaded.

Вызываю от сюда:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 public async Task Initialize()
 {
     // главного по умолчанию
     User user = await _userService.GetOrCreateUserAsync(Constans.OWNER_STEAM_ID, "OWNER", User.Role.Admin);
     Debug.WriteLine($"Added {Constans.OWNER_STEAM_ID} as default owner!");
 
     // тест репорт
     await _userService.AddReportAsync(new Report()
     {
         SenderId = user.Id,
         SuspectId = user.Id,
         Reason = "Репорт",
         Description = "Дополнительно",
         ReportDate = DateTime.UtcNow
     });
 }
Никаких AsNoTracking пока не добавлял.
Заранее спасибо за помощь.

Добавлено через 5 часов 18 минут
Хотя на прямую обращаться к контексту я могу, добавлять/удалять/изменять.

ApplicationContext:
C#
1
2
3
        public DbSet<User> Users { get; set; }
        public DbSet<CheckResult> CheckResults { get; set; }
        public DbSet<Report> Reports { get; set; }
И так же потом получать через юзера репорты "user.Reports.where..." могу, но добавлять (изменять и удалять через юзера не пробовал) не могу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2025, 01:38
Ответы с готовыми решениями:

Ошибка: указан недопустимый обьект, или обьект более не задан
Что не так в этом коде ? Sub abv() Dim rst As Recordset, str As String, i As Byte, fld As String Dim tdf As TableDef

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

Проблема с файлами.В фаил добавляется только дата, а сам текст не добавляется
Подскажите кто может... Есть сайт со списком новостей и форма для добавления новой новости. Вот пример программы &lt;?php echo' ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2025, 01:38
Помогаю со студенческими работами здесь

Не добавляется видео на сайт c ютуб с моим шаблоном а с другим добавляется
Помогите!!! не добавляется видео на сайт с ютуб c моим шаблоном а с другим добавляется.Не собираюсь из за этого менять шаблон.Вставляю...

Как конвертировать обьект типа System.Drawing.Image в обьект System.Web.UI.WebControls.Image
Буду очень благодарен тому кто поможет

В Edit записать число, если число положительное, то добавляется в Listbox1, иначе добавляется в Listbox2
Добрый день, помогите разобраться, имеется два Listbox'а и один Edit. Необходимо в Edit записать число, если число положительное, то...

Изменить слова: первая буква добавляется в конец слова и в конец же добавляется окончание ai
Задача: вводят выражение, строку из нескольких слов, её нужно преобразовать в особый язык. Этот язык заключается в изменении слов: первая...

Обьект
Всем привет, есть проблема, обьект перекрывает все в игре хоть при просмотре сцены он на заднем плане, в иерархие двигал, ордер ин лаер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru