# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET Core >  خواندن از دیتابیس بدون لود شدن Relation ها

## maxpayn2

سلام
توی پروژه ASP.Net Core 2.2 یه کوئری دارم به این شکل

var images = (from i in _context.Images where i.ImageUserId == userId select i).ToListAsync();

وقتی اجرا میشه images رو میاره به همراه تمام اطلاعات مربوط به جدول Users که با جدول Images ارتباط (Relation) داره . میخوام اطلاعات جدول Users رو بی خیال بشه . چی کار باید بکنم ؟

----------


## shahab_ksh

> سلام
> توی پروژه ASP.Net Core 2.2 یه کوئری دارم به این شکل
> 
> var images = (from i in _context.Images where i.ImageUserId == userId select i).ToListAsync();
> 
> وقتی اجرا میشه images رو میاره به همراه تمام اطلاعات مربوط به جدول Users که با جدول Images ارتباط (Relation) داره . میخوام اطلاعات جدول Users رو بی خیال بشه . چی کار باید بکنم ؟


بخش select رو محدود کنید به ستون های دلخواه

----------


## maxpayn2

> بخش select رو محدود کنید به ستون های دلخواه


ممنون . راستش همین کار رو هم کردم ولی وقتی images رو میخوام return کنم میگه نمیتونم به نوع ImageDto که خودم تعریف کردم و همون پراپرتی هایی رو داره که select میکنم ، کانورت کنم چون ناشناخته هستش  :متفکر:

----------


## baha_ks

سلام، میتونید یه viewmodel بنویسید که فقط بخشهایی که میخواد رو واکشی کنه

----------


## amir3321

در کوئری گزینه AsNoTracking رو اضافه کن مشکلت حل میشه

----------


## magicmilkom

با سلام. 

برای این منظور روش صحیح این هست که برای واکشی اطلاعات به سرور زیاد فشار نیارید. 
پیشنهاد می کنم که از ViewModel برای این منظور در پوشه ViewModel هاتون که در لایه ی YourProjectName.Core هست استفاده کنید.

در اینجا شما ViewModel با نام ImageViewModel در پوشه ViewModel هاتون ایجاد کنید. 
فیلد هایی از آن Image را که می خواهید واکشی کنید مشخص کنید. 
از طریق تعریف در سرویس مورد نظرتون مثلا اینجا IImageService (به عنوان مثال)  متودی به صورت زیر عمل کنید:
در IImageService یا همون ریپوزیتوری، متودی برای دریافت ایمیل تعریف کنید:
ImageViewModel GetImageByUserId(int userId)
در ImageService داریم: (فرض رو بر این گذاشتم که شما دو تا پروپرتی ImageName و CreateDate را در ImageViewModel تعریف کردید.)

public ImageViewModel GetImageByUserId(int userId){
return _context.Images.where(i=> i.ImageUserId== userId).select(new ImageViewModel(){
ImageName=c.imageName,
CreateDate=i.createDate
}).ToList();
}

----------

