سلام
دوستان آقای نصیری در سایتشون این لینک را قرار دادند:
http://www.talksharp.com/increase-en...rk-performance
تسلط من به زبان خوب نیست و یک سری موارد که در اینجا گفته شده بود به صورت کامل متوجه نشدم چکیده صفحه فوق رو اینجا میذارم و یک سری سوال دارم که دوستان اگه راهنمایی کنند ممنون میشم.
7 روش برای افزایش کارایی Entity Framework :
http://www.talksharp.com/increase-en...rk-performance
1- استفاده نکردن از repository pattern
2- صفحه بندی
3- تنها فیلدهایی که نیاز دارید را انتخاب کنید در کوئری و به خاطر خواستن چند فیلد تمام دیتاها را لود نکنید.
4- استفاده از virtual در کلاس های پایگاه داده
5- بهتر است زمانیکه نمی خواهید در لیستی که از پایگاه داده گرفتید تغییری ایجاد کنید از تابع AsNoTracking استفاده کنید.
_context.Posts.AsNoTracking().ToList();
6- استفاده از ایندکس ها: مثلا زمانیکه شما یک لیست از کاربران دارید و ایمیل در این لیست برای هر کاربر یکتا است شما می توانید با ایندکس قرار دادن فیلد ایمیل به سرعت واکشی اطلاعات از پایگاه داده کمک کنید.
CreateIndex(table: "dbo.Users", column: "Email", unique: true, name: "UIX_Email");
7- کاهش تعداد کوئری ها
حالا سوال های من:
در مورد مورد 4 : من برای تمام فیلدهای کلاس ها پایگاه داده از virtual استفاده میکنم. کجا نباید استفاده کرد؟ (در این سایت یه توضیحی داده که متوجه نشدم)
در مورد مورد 5: در بسیاری موارد لیستی که از پایگاه داده جستجو می کنیم نیاز به تغییرات نداره یعنی در همه جا از AsNoTracking قبل از toList استفاده کنیم؟ کجا نباید استفاده کنیم؟ (در این سایت یه توضیحی داده که متوجه نشدم)
6- به طور معمول من فیلد id را کلید قرار میدم با قرار دادن [key] در بالای تعریف پراپرتی id در کلاس های پایگاه داده. زمانیکه من چند کلید داشته باشم باید چه کنم؟
7- متوجه منظور نویسنده نشدم