View Full Version : سوال: کاربرد Include چیست
Iran58
سه شنبه 22 اسفند 1396, 12:48 عصر
سلام
var persons = db.Persons.Include(h => h.Status).Include(h => h.Sex);
کاربرد Includeدر بالا چسیت و ایا همان join است
وInclude بهتر است یا join
باتشکر
ali_md110
سه شنبه 22 اسفند 1396, 15:47 عصر
بله همون join هست و به eager loading مشهور هست
فرض کنیم دو جدول با هم ارتباط دارند مثلا جدول Parentو جدول Child
کوئری زیر بر روی جدول Child باعث میشه رکوردهای جدول Child واکشی بشه
var persons = db.Childs;
اگر بعد از این دستور بخواهیم به ردیف اول نتیجه این کوئری و فیلد PrentName از جدول Parent دسترسی پیدا کنیم کافیه بنویسیم
var persons = db.Childs;
var p=persons.FirstOrDefault().Parent.ParentName
با اینکار دو دستور به سمت اسکیول سرور ارسال میشه یکی برای واکشی رک.ردهای جدول Child و دیگری جدول Parent و این به Lazy Loading مشهور هست
فرض کنیم 100 تا رکورد در جدول Child بود و خواستیم درون یک حلقه به ParentName های تمام این 100 تا رکورد دسترسی داشته باشیم باید اینجوری بنویسیم
var persons = db.Childs;
foreach(var c in persons )
{
var p=c.Parent.ParentName
}
با اینکار 101 کوئری به سمت اسکیول سرور ارسال میشه مثل بمب افکن و این یک فاجعه هست
برای جلوگیری از ارسال 101 کوئری و اینکه فقط یک کوئری ارسال بشه از Include استفاده میکنیم
var persons = db.Incude(x=> x.Parent).Childs;
foreach(var c in persons )
{
var p=c.Parent.ParentName
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.