linq(update) 更新用 自动赋值方法
2008-04-28 23:54
381 查看
public static void SameValueCopier(object DataSetter, object DataGetter,bool IsLinqData)
public static void DiffValueCopier(object DataSetter, object DataGetter,bool IsLinqData)
{
PropertyInfo[] propertyInfoSetterList = DataSetter.GetType().GetProperties();
PropertyInfo[] propertyInfoGetterList = DataGetter.GetType().GetProperties();
foreach (PropertyInfo dataSetterPropertyInfo in propertyInfoSetterList)
{
if (dataSetterPropertyInfo.MemberType == MemberTypes.Property)
{
string dataSetterPropertyName = dataSetterPropertyInfo.Name;
foreach (PropertyInfo dataGetterPropertyInfo in propertyInfoGetterList)
{
string dataGetterPropertyName = dataGetterPropertyInfo.Name;
object value = DataGetter.GetType().GetProperty(dataGetterPropertyName).GetValue(DataGetter, null);
if (dataSetterPropertyName == dataGetterPropertyName)
{
if (IsLinqData)
{
if (!dataSetterPropertyInfo.PropertyType.IsGenericType)
{
DataSetter.GetType().GetProperty(dataSetterPropertyName).SetValue(DataSetter, value, null);
break;
}
}
else
{
DataSetter.GetType().GetProperty(dataSetterPropertyName).SetValue(DataSetter, value, null);
break;
}
}
}
}
}
}
Category newc = new Category { ID = "1", P_ID = "0", Name = "b" };
Category oldc = db.Category.Where(r => r.ID == "1").First();
SameValueCopier(oldc, newc);
db.SubmitChanges();
kmdc.SubmitChanges();
SameValueCopier已测试通过
public static void DiffValueCopier(object DataSetter, object DataGetter,bool IsLinqData)
{
PropertyInfo[] propertyInfoSetterList = DataSetter.GetType().GetProperties();
PropertyInfo[] propertyInfoGetterList = DataGetter.GetType().GetProperties();
foreach (PropertyInfo dataSetterPropertyInfo in propertyInfoSetterList)
{
if (dataSetterPropertyInfo.MemberType == MemberTypes.Property)
{
string dataSetterPropertyName = dataSetterPropertyInfo.Name;
foreach (PropertyInfo dataGetterPropertyInfo in propertyInfoGetterList)
{
string dataGetterPropertyName = dataGetterPropertyInfo.Name;
object value = DataGetter.GetType().GetProperty(dataGetterPropertyName).GetValue(DataGetter, null);
if (dataSetterPropertyName == dataGetterPropertyName)
{
if (IsLinqData)
{
if (!dataSetterPropertyInfo.PropertyType.IsGenericType)
{
DataSetter.GetType().GetProperty(dataSetterPropertyName).SetValue(DataSetter, value, null);
break;
}
}
else
{
DataSetter.GetType().GetProperty(dataSetterPropertyName).SetValue(DataSetter, value, null);
break;
}
}
}
}
}
}
Category newc = new Category { ID = "1", P_ID = "0", Name = "b" };
Category oldc = db.Category.Where(r => r.ID == "1").First();
SameValueCopier(oldc, newc);
db.SubmitChanges();
kmdc.SubmitChanges();
SameValueCopier已测试通过
相关文章推荐
- linq(update) 更新用 自动赋值方法
- C#的LINQ中多字段的简便更新(update)方法
- php mysql 判断update之后是否更新了的方法
- Hibernate并没有调用update却自动更新,解决方案
- .Net Core配置与自动更新的实现方法
- 通过 SqlDataAdapter.update 方法通过DataSet更新数据库
- Access使用参数化UPDATE数据时,数据无法更新的问题,要按照参数顺序赋值
- 运用PHP定时自动更新网站首页HTML的方法
- ON DUPLICATE KEY UPDATE批量插入记录,遇到重复记录则为自动更新
- DataAdapter对象的Update方法批量更新(CommandBuilder)
- 使用WSUS服务器配置自动更新方法简介
- 【转载】 IE/Firefox每次刷新时自动检查网页更新,无需手动清空缓存的设置方法
- mybatis自动生成mapper中的insert与insertseletive,updateByPrimaryKey,updateByPrimaryKeySelective方法的区别
- 用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
- IntelliJ IDEA热加载自动更新(Update classes and resources )
- c# Winform 程序自动更新实现方法
- PostgreSQL更新表时时间戳不会自动更新的解决方法
- mysql 表设计时的update_time自动更新
- MDK5.0 更新J-Link固件 导致其自动关闭 的有效解决方法
- apt-get update 更新 ubuntu时出现Hash sum mismatch的原因及解决方法