遍历字典并将项目附加到对象

本文关键字:对象 项目 字典 遍历 | 更新日期: 2023-09-27 18:30:59

我有一个实体框架对象"user"。我正在字典中传递变量以更新用户。我想循环访问字典项并将它们附加到实体框架对象。

因此,如果一个项目有一个 id,它将被更新,否则它将入

词典条目:

Dictionary<string, string> updateItems = new Dictionary<string, string>();
updateItems.Add("column1", "value1");
updateItems.Add("column2", "value2");

功能:

public static void markPost(Dictionary<string, string> data)
{
  using (var db = new DB())
  {
    var user = new user();   
    if (data.ContainsKey("id"))
    {          
      user = db.user.Find(Int32.Parse(data["id"])); 
    }
    foreach (KeyValuePair<string, string> entry in data)
    {
      if (!entry.Key.Equals("id"))
      {
        PropertyInfo propertyInfo = user.GetType().GetProperty(entry.Key);
        propertyInfo.SetValue(user, entry.Value, null); 
      }          
    }
    if (!data.ContainsKey("id"))
    {
      db.user.Add(user);
    } 
    db.SaveChanges();
  }
}

遍历字典并将项目附加到对象

在你的 foreach 循环中,尝试

PropertyInfo propertyInfo = user.GetType().GetProperty(entry.Key);
propertyInfo.SetValue(user, entry.Value, null);  //Assumes the value is of the same type as the property.

您将需要 System.Reflection 的 using 指令。