C#反射_两合并更新实体

Posted heheblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#反射_两合并更新实体相关的知识,希望对你有一定的参考价值。

        #region 更新实体模型
        /// <summary>
        /// 更新实体模型
        /// </summary>
        /// <typeparam name="T">源实体类型</typeparam>
        /// <typeparam name="S">最终合并后返回的实体类型</typeparam>
        /// <param name="tModel">源数据实体</param>
        /// <param name="outModel">最终合并后返回的实体</param>
        /// <returns>最终实体</returns>
        public static S EntityMerge<T, S>(T tModel, S outModel)
        {
            Type type = tModel.GetType();
            Type outType = outModel.GetType();
            var properties = type.GetProperties();
            var outProperties = outType.GetProperties();
            foreach (var property in properties)
            {
                foreach (var item in outProperties)
                {
                    if (property.Name == item.Name)
                    {
                        var value = property.GetValue(tModel);
                        item.SetValue(outModel, value, null);
                        break;
                    }
                }
            }
            return outModel;
        } 
        #endregion

 

以上是关于C#反射_两合并更新实体的主要内容,如果未能解决你的问题,请参考以下文章

[转]C#反射,根据反射将数据库查询数据和实体类绑定,并未实体类赋值

《搬砖日记》AssetsBundle实现资源更新及通过反射添加脚本

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

20170320_系统管理_用户管理1_反射得到model实例

合并获取不刷新的待更新版本?

C#用反射实现两个类的对象之间相同属性的值的复制