PetekDincos
پنج شنبه 09 دی 1389, 21:51 عصر
با سلام
من چطور می تونم در Entity هایی که EntityState آنها Added یا Modified است فیلدهایی که مقادیر آنها تغییر کرده است پیدا کنم چون من در یک دیتاگراید اطلاعات یک جدول را نشون می دم و می خواهم وقتی مقدار فیلد یک ستون خاص از دیتاگراید تغییر کرد یا افزوده شد یک رکورد را در یک جدول دیگر تغییر بدم برای همین بایستی اون فیلدی که تغییر می کنه را پیدا کنم و از کد زیر استفاده میکنم اما به نتیجه نمی رسم
var
ChangedEntities =Context.ObjectStateManager.GetObjectStateEntries(
EntityState.Added | EntityState.Modified
);
foreach (var entity in ChangedEntities)
{
if (entity.Entity == null) continue;
var PropertyInfos = entity.Entity.GetType().GetProperties(
BindingFlags.Public | BindingFlags.Instance
).Where(n => n.CanRead && n.CanWrite && n.Name ==
"نام فیلد مورد نظر");
var prop = newPropertyReflector();
foreach (var propInfo in PropertyInfos)
{
var propName = propInfo.Name;
var value = prop.GetValue(entity.Entity, propName);
if (value != null)
{
MessageBox.Show(value.ToString());
}
}
}
این کد مقدار فیلد مورد نظر را برای همه حالت ها نشون می ده ولی من می خوام فقط برای حالتی که تغییر کرده یا افزوده شده نشون بده این کد را چطور تغییر بدم و خیلی برام حیاتی ممنون می شم اگه کمکم کنید با تشکر :گریه::گریه::گریه:
من چطور می تونم در Entity هایی که EntityState آنها Added یا Modified است فیلدهایی که مقادیر آنها تغییر کرده است پیدا کنم چون من در یک دیتاگراید اطلاعات یک جدول را نشون می دم و می خواهم وقتی مقدار فیلد یک ستون خاص از دیتاگراید تغییر کرد یا افزوده شد یک رکورد را در یک جدول دیگر تغییر بدم برای همین بایستی اون فیلدی که تغییر می کنه را پیدا کنم و از کد زیر استفاده میکنم اما به نتیجه نمی رسم
var
ChangedEntities =Context.ObjectStateManager.GetObjectStateEntries(
EntityState.Added | EntityState.Modified
);
foreach (var entity in ChangedEntities)
{
if (entity.Entity == null) continue;
var PropertyInfos = entity.Entity.GetType().GetProperties(
BindingFlags.Public | BindingFlags.Instance
).Where(n => n.CanRead && n.CanWrite && n.Name ==
"نام فیلد مورد نظر");
var prop = newPropertyReflector();
foreach (var propInfo in PropertyInfos)
{
var propName = propInfo.Name;
var value = prop.GetValue(entity.Entity, propName);
if (value != null)
{
MessageBox.Show(value.ToString());
}
}
}
این کد مقدار فیلد مورد نظر را برای همه حالت ها نشون می ده ولی من می خوام فقط برای حالتی که تغییر کرده یا افزوده شده نشون بده این کد را چطور تغییر بدم و خیلی برام حیاتی ممنون می شم اگه کمکم کنید با تشکر :گریه::گریه::گریه: