Можете подсказать, что нужно исправить в методе чтобы он сбрасывал значение на 0 в конкретном столбце из базы данных

Вообщем этот метод проверяет значение в конкретном столбце из таблицы базы данных, вообщем мне нужно, чтобы этот метод проверял значение в конкретном столбце и сбрасывал в нем значение на 0. библиотека discord.net бд entity framework core, желательно дайте ответ кодом пожалуйста.

public static int ResetUserXp(ulong UserId, ulong GuildId)
        {
            using var DbContext = new SqlDbContext();
            IQueryable<Level> ds = DbContext.Levels;
            return ds.Where(x => x.UserId == UserId && x.GuildId == GuildId).Select(x => x.XP).FirstOrDefault();
        }

Ответы (1 шт):

Автор решения: Alexander Petrov

Ваш метод должен выглядеть как-то так:

public static void ResetUserXp(ulong userId, ulong guildId)
{
    using var dbContext = new SqlDbContext();
    var levels = dbContext.Levels;
    var level = levels.FirstOrDefault(x => x.UserId == userId && x.GuildId == guildId);
    level.XP = 0;
    dbContext.SaveChanges();
}

Находим нужную сущность. Я обозначил её level, так как таблица зовётся Levels.
Меняем у сущности какое-либо значение - XP.
Сохраняем изменения вызовом SaveChanges().

Метод ничего не возвращает, т. к. нечего возвращать, судя по смыслу и названию.

Исправил имена параметров и переменных в соответствии с принятыми правилами.


Асинхронная версия:

public static async Task ResetUserXpAsync(ulong userId, ulong guildId)
{
    using var dbContext = new SqlDbContext();
    var levels = dbContext.Levels;
    var level = await levels.FirstOrDefaultAsync(x => x.UserId == userId && x.GuildId == guildId);
    level.XP = 0;
    await dbContext.SaveChangesAsync();
}
→ Ссылка