У меня проблемы с обновлением значений в Entity Framework 6, я тщательно просмотрел ответы в Интернете, но, кажется, я все делаю просто отлично, но, похоже, я не могу заставить его работать.
Стоит отметить, что добавление сущностей в БД прекрасно работает, то есть я могу добавлять продукты / пользователей в моем проекте в БД, но не обновлять их.Это домашняя работа.
public bool ChangeAccountStatus(long userID, bool isUserActive)
{
User userToChange = GetUserById(userID); // Gets the user whose values I want to change.
using (var context = new ShopContext())
{
if (userToChange != null)
{
if (isUserActive)
{
userToChange.IsActive = false;
context.SaveChanges();
}
else
{
userToChange.IsActive = true;
context.SaveChanges();
}
return true;
}
return false;
}
}
Я могу заставить работать обновление, если использую linq, чтобы найти пользователя, значение которого я хочу изменить, но я не хочу слишком много дублирования кода в моем проекте, иЯ использую тот же linq (функция GetUserById) во многих других функциях.Нужно ли использовать linq для доступа к пользователю из базы данных вместо использования функции, которую я создал, чтобы избежать дублирования кода?Это функция GetUserById:
public User GetUserById(long userId)
{
using (var context = new ShopContext())
{
var userToFind = context.UsersTable
.Where((u) => u.Id == userId).FirstOrDefault();
if (userToFind != null)
return userToFind;
else
return null;
}
}