stub Entity چیست؟
به زبان ساده اگر یک نمونه از یک Entityدر برنامه خود ایجاد کنیم و به شناسه آن مقدار دهی کنیم در اصطلاحا یک stub Entity ایجاد کرده ایم.
[csharp] Category c = new Category {ID = 5}; [/csharp] |
چه زمانی stub Entity ها به درد ما میخورند؟
هر زمانی که شما تنها به یک نمونه از شی نیاز داشته باشید و تنها با شناسه آن کار داشته باشید نه با همه اطلاعات آن، stub Entityها وارد عمل میشوند. اگر بهتر بخواهیم بگوییم به کمک stub Entity ها شما از سربار اضافه روی سرور خود جلوگیری میکنید.
سناریو اول ایجاد یک رابطه به کمک stub Entity:
به جرات میتونم بگم یکی از پرکاربردترین سناریوهای استفاده از stub Entityها همین مثال هست. فرض کنید یک کالای جدید میخواهید در پایگاه داده ثبت کنید و میدانید که شناسه دسته بندی این کالا برابر با عدد 5 میباشد. به صورت پیش فرض بسیاری از برنامه نویسان کار زیر را انجام می دهند:
[csharp] Product p = new Product { |
در این مثال مشاهده میکنید که تنها کافی است یک بار برای ذخیره محصول به سراغ پایگاه داده برویم و نیازی به خواندن مقدار دسته بندی از پایگاه داده نیست.
سناریو دوم حذف یک موجودیت:
یکی دیگر از مواقعی که معمولا با اینکه تنها داشتن شناسه موجودیت کفایت میکند اما برنامه نویس ها مجبور هستند اطلاعات را بدون اینکه به آن نیاز داشته باشند از پایگاه داده واکشی کنند، هنگام حذف موجودیت است.
[csharp] Category category = ctx.Categories.First(c => c.ID == 5); |
اما با استفاده صحیح از stub Entity نیاز به خواندن موجودیتی که شناسه آن را داریم و سپس حذف آن از پایگاه داده مرتفع میشود و تنها با داشتن شناسه امکان حذف موجودیت از پایگاه داده برای ما فراهم می شود.
[csharp] Category category = new Category { ID = 5 }; |
سناریو سوم به روز رسانی موجودیت:
یکی دیگر از مواردی که معمولا نیاز به واکشی و سپس ثبت موجودیت داریم هنگام ویرایش موجودیت است. اما در صورتی که کلیه اطلاعات مورد نیاز را داشته باشیم به کمک stub Entity میتوانیم از رفت و آمد بیهوده به پایگاه داده جلوگیری کنیم و تنها با یک بار ارسال داده به پایگاه داده کار خود را انجام دهیم.
[csharp] Person person = new Person{ |
خلاصه:
موارد ذکر شده در بالا از پرکاربرد ترین سناریوهای استفاده از stub Entityها بود در صورتی که به کارهای روزمره خود نگاهی بیاندازید موارد بسیاری را خواهید یافت که بی دلیل بار بر روی سرور گذاشته میشود و به کمک stub Entityها میتوان این بار اضافی را حذف کرد.
منبع: آموزش برنامه نویسی نیک آموز
6 دیدگاه
مدیا مهربانیان
با سلام
MEHDI
سلام
ممنون برای مطلب خوبتون
m
لطفا ذکر کنید کدها به چه زبانی نوشته شدن؟
mpoorsalek@gmail.com
دوست عزیز محمد راست میگن کد ها به چه زبانی نوشته شدن ؟
رضا نصیری
سلام. سی شارپ
محموو
سلام
کدها خیلی مفید بود ممنون