یکسان سازی "ی" و "ک" دریافتی در حین استفاده از Entity framework
نویسنده: وحید نصیری
تاریخ: ۱۳۸۹/۰۷/۱۱ ۲۲:۵۸:۰۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System.Data;
using System.Data.Objects;
using System.Linq;
using System.Reflection;
namespace EfExt
{
public static class CorrectYeKe
{
public static void ApplyCorrectYeKe(this ObjectContext ctx)
{
if (ctx == null)
return;
//پیدا کردن موجودیتهای تغییر کرده
var changedEntities = ctx.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(p => p.CanRead && p.CanWrite && p.PropertyType == typeof(string));
var pr = new PropertyReflector();
//اعمال یکپارچگی نهایی
foreach (var propertyInfo in propertyInfos)
{
var propName = propertyInfo.Name;
var val = pr.GetValue(entity.Entity, propName);
if (val != null)
{
pr.SetValue(
entity.Entity,
propName,
val.ToString().ApplyUnifiedYeKe());
}
}
}
}
}
}
((IObjectContextAdapter)db).ObjectContext.ApplyCorrectYeKe()