巧用dynamic给对象字段动态赋值(经测试无效,使用反射解决)
2024-08-26 13:31:47
动态把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
最新文章
- Struts2 简介
- 剑指Offer 矩形覆盖
- Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
- 操作sqlserver数据库常用的三个方法
- Ubuntu 12.04 卸载 VMware
- keyCode 与charCode
- [Javascript]jquery $(document).ready() 与window.onload的区别
- MS-SQL Server字符串处理函数大全
- ASP.NET MVC and jqGrid 学习笔记 3-如何从数据库获得数据
- BZOJ1640: [Usaco2007 Nov]Best Cow Line 队列变换
- Kingbase在初始化时遇到的错误
- VS2015如何新建C++或者C语言版的lib文件
- java thread 线程锁同步,锁,通信
- vs 2017 vs code
- linux磁盘管理系列二:软RAID的实现
- JavaScript动态修改html组件form的action属性
- codeforces-div2-449-B
- 和TransDecoder 学习perl 自定义模块的路径问题
- H5的Page Visibility API
- JsExcelXml.js的源码