首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尽管使用了SaveChanges(),但无法更改EF中的值

尽管使用了SaveChanges(),但无法更改EF中的值
EN

Stack Overflow用户
提问于 2018-06-08 07:37:02
回答 1查看 280关注 0票数 1

我在更新Entity Framework6中的值时遇到了麻烦,我已经彻底地在互联网上寻找了答案,但似乎我做的一切都很好,但我似乎不能让它工作。

值得一提的是,将实体添加到数据库中工作得很好,这意味着我可以将项目中的产品/用户添加到数据库中,但不能更新它们。这是家庭作业。

代码语言:javascript
复制
 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 (function GetUserById)。我是否需要使用linq从数据库访问用户,而不是使用我为避免代码重复而创建的函数?这是GetUserById函数:

代码语言:javascript
复制
        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;
        }
    }
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50751496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档