动态把json对象的字段值赋给某个对象的字段

var dt=Utils.JsonDataTableConvert.ToDataTable(tableJson);
foreach (DataRow row in dt.Rows)
{
var idNO = row["身份证号"]+"";
var dbItem = dc.Set<User>().FirstOrDefault(ee=>ee.身份证号==idNO) as dynamic;
if (dbItem==null)
{//insert
dbItem = new User();
foreach (var key in keys)
{
var val = row[item.Value[key]] + ""; //从json对象中取出 字段的值
//dbItem.UUId=val; //无意义,必须知道字段名UUId
                      //dbItem[key] = val; //把值赋给数据库查出的对象 会报错:无法将带 [] 的索引应用于“xx”类型的表达式,使用反射解决
                      MappingValue(dbItem,key,val);
}
}
else
{//update
foreach (var key in keys)
{
var val =row[item.Value[key]] + "";
//dbItem[key] = val;无法将带 [] 的索引应用于“Tools.AA”类型的表达式
                      MappingValue(dbItem,key,val);
}
} dc.SaveChanges();
}
void MappingValue(User item, string _field, string value)
{
try
{
var type = item.GetType();
var field = type.GetProperty(_field);
field.SetValue(item, value);
}
catch (Exception ex)
{ }
}

 

08D12352-4044-490D-B3FD-978257103C13 From:http://www.cnblogs.com/xuejianxiyang/p/7678079.html

最新文章

  1. Struts2 简介
  2. 剑指Offer 矩形覆盖
  3. Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
  4. 操作sqlserver数据库常用的三个方法
  5. Ubuntu 12.04 卸载 VMware
  6. keyCode 与charCode
  7. [Javascript]jquery $(document).ready() 与window.onload的区别
  8. MS-SQL Server字符串处理函数大全
  9. ASP.NET MVC and jqGrid 学习笔记 3-如何从数据库获得数据
  10. BZOJ1640: [Usaco2007 Nov]Best Cow Line 队列变换
  11. Kingbase在初始化时遇到的错误
  12. VS2015如何新建C++或者C语言版的lib文件
  13. java thread 线程锁同步,锁,通信
  14. vs 2017 vs code
  15. linux磁盘管理系列二:软RAID的实现
  16. JavaScript动态修改html组件form的action属性
  17. codeforces-div2-449-B
  18. 和TransDecoder 学习perl 自定义模块的路径问题
  19. H5的Page Visibility API
  20. JsExcelXml.js的源码

热门文章

  1. 移动端尺寸新写法-rem
  2. 使用IntelliJ IDEA 前最好修改的配置
  3. 洛谷 P3204 [HNOI2010]公交线路
  4. mysql里面 limit的奇效
  5. shell (2) 时间处理
  6. Shiro入门资源整理
  7. pymysql 各种坑总结
  8. Linux云服务器下Tomcat部署
  9. 网络编程- 解决黏包现象方案二之struct模块(七)
  10. ps(1)