Можете подсказать, что нужно исправить в методе чтобы он сбрасывал значение на 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();
}