【问题标题】:Entity Framework not updating record实体框架不更新记录
【发布时间】:2021-09-21 21:47:53
【问题描述】:

我在ParametersController类中有这个方法:

        public string SaveParameter(int id, string param, string val)
    {
        ProjectConfigurations config = new ProjectConfigurations();
        ProjectConfigurationsDAO dao = new ProjectConfigurationsDAO();

        config = dao.GetProjectConfigurationsByProjectAndParameter(id, param);
        
        config.Value = val;

        dao.Edit(config);

        return JsonConvert.SerializeObject(new { success = true, data = config });
        //return JsonConvert.SerializeObject(config);
    }

在我的 BaseDao 课程中,我有这个:

        public void Edit(T entity)
    {
        using (context = new Context())
        {
            context.Entry<T>(entity).State = EntityState.Modified;
            context.SaveChanges();
        }
    }

记录未更新。我是 EF 的新手,我做错了什么?

【问题讨论】:

    标签: .net entity-framework


    【解决方案1】:

    永远不要尝试创建任何通用存储库,因为它们毫无用处。试试这个

        public string SaveParameter(int id, string param, string val)
        {
            using (context = new Context())
            {
             var existedConfig=conext.Set<Config>.FirstOrDefault(i=> i.Id==id);
             existedConfig.Value=val;
              context.Entry<Config>(existedConfig).State = EntityState.Modified;
             context.SaveChanges();
             return JsonConvert.SerializeObject(new { success = true, data = config });
            }
    

    【讨论】:

    • 在将其状态设置为已修改之前,我必须附加配置对象,但除此之外它工作得很好。谢谢您的帮助! =D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多