چه تکنولوژی می‌خواهید یاد بگیرید؟

نظرات و انتقادات خود را با ما در میان بگذارید

آپدیت روزانه

بیش از 1000 پست آموزشی

نیازهای روز

متد الحاقی حذف موجودیت در EF

برای حذف یک یا چند رکورد می‌توان از دستور DbSet<T>.Remove استفاده نمود اما از آنجا که دستور Remove پارامتر Null را هندل نخواهد کرد دستور زیر ممکن است در مواقعی موجب ایجاد استثنا شود:

context.EntitySet.Remove(context.EntitySet.SingleOrDefault(e => <some predicate>)); 

کد فوق را به صورت زیر تغییر خواهیم داد:

T entity = context.EntitySet.SingleOrDefault(e => <some predicate>);
if(entity != null)
{
    context.EntitySet.Remove(entity);
} 

همچنین به منظور راحتی کار می‌توان با استفاده از روش متد الحاقی، کد فوق را به صورت ذیل تغییر نمود:

static class DbSetExtensions
{
    public static void RemoveIfExists<T>(this DbSet<T> 
    theDbSet, Expression<Func<T, bool>> thePredicate) where T : class
    {
        foreach(T entity in theDbSet.Where(thePredicate))
        {
            theDbSet.Remove(entity);
        }
    }
} 
context.EntitySet.RemoveIfExists(e => e.PropA == 1 && e.PropB > 2);



0 نظر:

تعداد دیدگاه‌های کاربران : 0 دیدگاه
مهمان گرامی! برای ارسال نظر نیاز است وارد سایت شوید.