日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

修改数据表部分字段方法封装-及-动态生成对象并动态添加属性

發布時間:2023/11/29 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 修改数据表部分字段方法封装-及-动态生成对象并动态添加属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代碼:

//這樣寫的話,輸入的是表的行對象,返回的是數據字典,可以直接用到更新操作里,public static Object AlterDate(Object tabledataobj){List<string> namelist = new List<string>();List<Object> valuelist = new List<object>();Type t = tabledataobj.GetType();foreach (PropertyInfo pi in t.GetProperties()){if (pi.Name == "id"){ }else{Object value = pi.GetValue(tabledataobj);if (value != null){namelist.Add(pi.Name);valuelist.Add(value);}}}Dictionary<string, object> temp = new Dictionary<string, object>();for (int i = 0; i < namelist.Count; i++){temp.Add(namelist[i], valuelist[i]);}temp.Add("updateTime", DateTime.Now);return temp;}//用到更新操作里,參考如下:var dic = new Dictionary<string, string>();dic.Add("name", "第十三條");dic.Add("areaId", "1");db.Update<School, int>(dic, 13);或:Object obj = AlterTable.AlterDate(dt);……var result = db.Update<t_customer,int>(obj,cusid);//方法重載,只有第二個參數里包含的字段才能進行修改public static Object AlterDate(Object tabledataobj,List<string> modifiableField){List<string> namelist = new List<string>();List<Object> valuelist = new List<object>();Type t = tabledataobj.GetType();foreach (PropertyInfo pi in t.GetProperties()){if (pi.Name == "id"){ }else{if (modifiableField.Contains(pi.Name)){Object value = pi.GetValue(tabledataobj);if (value != null){namelist.Add(pi.Name);valuelist.Add(value);}}}}Dictionary<string, object> temp = new Dictionary<string, object>();for (int i = 0; i < namelist.Count; i++){temp.Add(namelist[i], valuelist[i]);}temp.Add("updateTime", DateTime.Now);return temp;}//這樣寫的話,后面表示的是動態的的生成對象,并且動態的給對象添加屬性public static Object AlterDate(Object tabledataobj){List<string> namelist = new List<string>();List<Object> valuelist = new List<object>();Type t = tabledataobj.GetType();foreach (PropertyInfo pi in t.GetProperties()){if (pi.Name == "id"){ }else{Object value = pi.GetValue(tabledataobj);if (value != null){namelist.Add(pi.Name);valuelist.Add(value);}}}Dictionary<string, object> temp = new Dictionary<string, object>();for (int i = 0; i < namelist.Count; i++){temp.Add(namelist[i], valuelist[i]);}temp.Add("updateTime", DateTime.Now);dynamic result = new System.Dynamic.ExpandoObject();foreach (KeyValuePair<string, object> item in temp){((IDictionary<string, object>)result).Add(item.Key, item.Value);}return result;}

// 另一種方式
ExpandoObject 類,“需引用System.Dynamic命名空間”?

? ? ? ? ? ??dynamic?person =?new?ExpandoObject();

????????????person.Name =?"cary";

????????????person.Age =?25;

????????????person.ShowDescription =?new?Func<string>(() => person.Name + person.Age);

?

????????????Console.WriteLine(person.Name+person.Age+person.ShowDescription()); ? ? ? ? ??

????????????Console.ReadLine();

?

?

轉載于:https://www.cnblogs.com/zhangchaoran/p/7521185.html

總結

以上是生活随笔為你收集整理的修改数据表部分字段方法封装-及-动态生成对象并动态添加属性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。