Update实体时如何避免逐一赋值
来源:互联网 发布:南京php招聘 编辑:程序博客网 时间:2024/06/03 09:57
使用以下方法可以实现避免Update实体时避免逐一赋值的麻烦。
代码:
public static class ReflectionExtensions { public static void CopyPropertiesFrom(this object destObject, object sourceObject) { if (null == destObject) throw new ArgumentNullException("destObject"); if (null == sourceObject) throw new ArgumentNullException("sourceObject"); Type destObjectType = destObject.GetType(); foreach (PropertyInfo sourcePi in sourceObject.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)) { PropertyInfo destPi = destObjectType.GetProperty(sourcePi.Name); if (null != destPi && null != destPi.SetMethod) { object sourcePropertyValue = sourcePi.GetValue(sourceObject); destPi.SetValue(destObject, sourcePropertyValue); } } } }
调用方法:
using (DemoDBEntities1 ctx = new DemoDBEntities1()) { var query = (from q in ctx.Cities select q).FirstOrDefault(); City city = new City(); city.Id = query.Id; city.StateID = 101; city.City1 = "test"; query.CopyPropertiesFrom(city); int result = ctx.SaveChanges(); }
希望能帮助到更多的人。
- Update实体时如何避免逐一赋值
- 使用Attach和Detach来实现更新的时候避免逐一赋值的麻烦
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- 数组只能在初始化时整体赋初值。以后再赋值只能逐一改变了。
- 数组只能在初始化时整体赋初值。以后再赋值只能逐一改变了
- 转:邹建--UPDATE 时, 如何避免数据定位处理被阻塞
- coreData 实体使用setValueWithDictionary赋值避免存在未定义字段而崩溃
- struts2 session不一致问题
- lua和C/C++语言之间的调用
- 软件工程——面向过程的软件设计方法
- 待完成
- 黑马之行,正式启动!
- Update实体时如何避免逐一赋值
- jquery中的bind、on、live、delegate等方法对比
- 使用Objective-C的文档生成工具:appledoc
- 程序员的浮躁症
- Android Context
- java根据日期获取农历信息
- ArcGIS Server Flex API接入MapABC地图
- Java泛型全解
- Java 调用 Shell 命令