PDA

View Full Version : سرعت پایین اجرا در EntityFramework



AmirAlimadadi
یک شنبه 08 اسفند 1395, 15:30 عصر
با سلام
من دارم توی MVC کد نویسی می کنم. توی بعضی از کلاسهای مدل یه تعدادی Property تعریف کردم که توی تابع get اونها، با استفاده از EF یک کدی اجرا می شه. مثلا می ره توی یه مدل دیگه و یه Join انجام می ده و یه مقداری برمی گردونه. این کدها بسیار ساده هستند. در حد یک یا چند تا join.

ولی موقع استفاده از مدلها، مخصوصا موقعی که یه لیست از یه مدل دارم و تعداد عناصر لیست زیاد می شه و من مثلا می خوام یه حلقه For بندازم و عناصر رو بخونم بسیار کند می شه و حتی بعضی وقتا memory overflow می ده
باید چی کار کنم تا درست کار کنه
ممنون

masoud60
یک شنبه 08 اسفند 1395, 18:00 عصر
سلام

متاسفانه entity framework سرعت اجرای کوئری هاش کند هست.
از database First استفاده کردین؟

----------------------
[تبلیغات خذف شد]

ژیار رحیمی
یک شنبه 08 اسفند 1395, 19:02 عصر
خب مشخصه که حتما سرعت اجرا پایین میاد.نوشتن کد در get پراپرتی حتما در لیست گیری سرعت رو اجرا رو پایین می آورد. به ازای تک تک مقادیر لیست هر بار کدهای get پراپرتی فراخوانی میشود.شما بهتره روش دیگری رو پیاده سازی نمایید.join کردن جداول رو داخل get پراپرتی نمی نویسند.اوصولا در mvc لایه Model شامل کلاس های پایه code firest هست و کدهای اضافه تری نوشته نمیشود از طریق یک لایه واسط(لایه service) که بین model و لایه controler قرار میگیرد کویری های لازم رو می نویسند.

ali_md110
یک شنبه 08 اسفند 1395, 20:40 عصر
با اینکار ممکنه LazyLoading انجام بگیره و تعداد زیادی کوئری ارسال بشه
در ضمن فیلدهای محاسباتی رو ببرید سمت ویومدل و از تعریف در قسمت get خودداری کنید