SaveChanges возвращает 0 и не сохраняет данные вообще - PullRequest
0 голосов
/ 10 июня 2018

У меня странная проблема с SaveChanges() методом Entity Framework.Проблема в том, что он возвращает 0 и не обновляет данные таблицы вообще.В чем может быть проблема?Есть идеи?Я должен обновить данные существующих пользователей

[HttpPost]
[Authorize(Roles = "User")]
public ActionResult Settings(User _users)
{
    using (MydbEntities db = new MydbEntities())
    {
        var u = new User();
        string _Email = User.Identity.GetUserId().ToString();

        if(db.Users.Any(x=>x.Email == _Email))
        {
            u.BusinessName = _users.BusinessName;
            u.Address = _users.Address;
            u.VatNumber = _users.VatNumber;
            u.PhoneNumber = _users.PhoneNumber;
            u.IsBusinessUser = _users.IsBusinessUser;

            var foo = db.SaveChanges();
        }
    }
}

1 Ответ

0 голосов
/ 10 июня 2018

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

Попробуйте этот код:

[HttpPost]
[Authorize(Roles = "User")]
public ActionResult Settings(User _users)
{
    using (MydbEntities db = new MydbEntities())
    {
        string _Email = User.Identity.GetUserId().ToString();

        // try to find the existing user in the database
        User existing = db.Users.FirstOrDefault(x => x.Email == _Email);

        if(existing != null)
        {
            // if you *DID* find a user - then update its properties
            existing.BusinessName = _users.BusinessName;
            existing.Address = _users.Address;
            existing.VatNumber = _users.VatNumber;
            existing.PhoneNumber = _users.PhoneNumber;
            existing.IsBusinessUser = _users.IsBusinessUser;

            var foo = db.SaveChanges();
        }
    }
}

Сначала вы загрузите существующего пользователя, и если вы его нашли, вы обновите его свойства, а теперь SaveChanges() вызов должен обновить существующего пользователя для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...