您的位置:首页 > 其它

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已测试通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: