仅更新给定的值(实体框架)

达蒙

我试图仅通过动态发送给API的值来更新实体,因此每次客户端将不同的值发送给我的api时,它只会更改给定的值。

这是我的实体

    public class Administrator
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }
        public string Role { get; set; }
        public int Phone { get; set; }
    }

这是我的存储库:

public Task<bool> UpdateAdmin(Administrator admin)
        {
            if (admin != null)
            {
                _context.Admins.Update(admin);
                Commit();
                return Task.FromResult(true);
            }
            else
            {
                return Task.FromResult(false);
            }
        }

可以说我只想更新电话号码,我只用新的电话号码发送数据,但其余属性也更改为null。如何只更新给定的?

谢谢

Yongqing Yu

更新资料

根据您的评论,管理员每次都会收到不同的字段内容。

因此,您可以reflection用来dynamically确定admin接受的每个字段的值是否为null如果不是,请替换data的相应字段的值

public Task<bool> UpdateAdmin(Administrator admin)
        {
            if (admin != null)
            {   
                var data = _context.Admins.Find(admin.Id);
               
                Type t = typeof(Administrator);
                PropertyInfo[] propInfos = t.GetProperties(BindingFlags.Public | BindingFlags.Instance);
                foreach (var item in propInfos)
                {
                   var fieldValue = item.GetValue(admin);
                   if (fieldValue != null)
                   {
                      item.SetValue(data, fieldValue);
                   }
                 }

                  _context.Admins.Update(data);
                  Commit();
                  return Task.FromResult(true);
            }
            else
            {
                return Task.FromResult(false);
            }
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架 - 仅更新发送值

来自分类Dev

为什么实体框架要更新给定的输入值,在 '_' 字符之前加上 '~'

来自分类Dev

仅更新给定的值,而忽略dynamodb中的其他值

来自分类Dev

实体框架更新更改

来自分类Dev

实体框架-更新记录

来自分类Dev

实体框架更新性能

来自分类Dev

实体框架看不到其他会话的更新值

来自分类Dev

实体框架AddOrUpdate未在更新时设置FK值

来自分类Dev

实体框架仅加载父实体

来自分类Dev

实体框架如何更新具有相同值的所有实体

来自分类Dev

使用实体框架仅更新数据库中的某些列

来自分类Dev

实体框架:仅当所有对象都存在时才更新多个对象

来自分类Dev

使用实体框架仅更新数据库中的某些列

来自分类Dev

实体框架5更新每个对象/行仅工作一次

来自分类Dev

实体框架自动更新

来自分类Dev

实体框架6更新图

来自分类Dev

实体框架汇总根更新

来自分类Dev

实体框架ExecuteSqlCommand批量更新

来自分类Dev

实体框架多对多更新

来自分类Dev

在实体框架7中更新继承的实体

来自分类Dev

实体框架嵌套实体添加或更新

来自分类Dev

在实体框架中更新实体的最佳方法

来自分类Dev

实体框架嵌套导航属性仅计算

来自分类Dev

实体框架-更新对象时更新列表

来自分类Dev

由于关系实体,更新实体框架实体失败

来自分类Dev

给定索引值,如何在Rails控制器中仅更新那些值?

来自分类Dev

给定索引值,如何在Rails控制器中仅更新那些值?

来自分类Dev

无法在实体框架更新方法中将 bool 值设置为 false

来自分类Dev

在实体框架核心中仅包含相关实体的ID