Entity Freamwork Core (Ef Core) آخرین نسخه از Entity Freamwork است که مایکروسافت که به عنوان بخشی ازفریمورک Dot Net Core معرفی کرده است. Ef core با قابلیت پشتیبانی از cross platform طراحی شده و نسبت به نسخه قبلی entity framework سبکتر ، گسترده تر و استفاده سادتره را ارائه می دهد. درواقع می توان گفت که ef core جدیدترین orm ارائه شده توسط مایکروسافت است.
Orm چیست؟
Orm یک لایه واسط بین کلاس های زبان برنامه نویسی و داده های ذخیره شده در پایگاه داده می باشد.کار orm نگاشت اطلاعات ذخیره شده در پایگاه داده بر روی کلاس های ما در زبان برنامه نویسی می باشد. قبل از پیدایش orm ها این کار را به صورت دستی توسط ما برنامه نویس ها انجام می شد که کاری طاقت فرسا و پر خطر بود. به دلیل این که نام ستون ها و غیره... را باید دستی ست می کردیم ، کوچک ترین تغییراتی ممکن بود خطاهای به وجود بیاورد و برنامه از کار بیوفتتد. امروزه اکثر برنامه نویسان از orm ها استفاده می کنند.
البته این نکته را هم در نظر بگیرید که انجام این کار توسط orm یک سرباری ایجاد می کند که در داده های با حجم بالا ممکن است این سربار چشمگیر باشد و ما مجبور باشیم برای افزایش سرعت از همان روش قدیمی یا از یک مینی orm مانند dapper استفاده کنیم.
Orm ها چه کاری انجام میدهند؟
- نگاشت دامین مدل ها به ابجکت های دیتابیس
- ایجاد و نگهداری دیتابیس با تغییر مدل ها
- تولید کدهای t-sql و اجرای آن بر روی دیتابیس
- مدیریت تراکنش ها
مزایایی استفاده از orm
- توسعه و نگهداری کد خیلی ساده تر است
- تولید خودکار کدهای T-SQL
- نوشتن query های سنگین با ساده ترین حالت و استفاده از linq
معایت استفاده از orm
- استفاده از منابع بیشتر نسبت به نوشتن دستی SQL.
- تولید کدهای SQL که ممکن است بهینه نباشند.
- در مواجهه با دادههای بسیار حجیم، ممکن است به مشکلات عملکردی برخورد کنیم.
در نسخه ef core 2.2 به بعد پشتیبانی از spatial data برای کار باداده های جغرافیایی به این orm اضافه شد.اگر قصد کار با نقشه و موقعیت های جغرافیایی در ef core را دارید می توانید مقاله مارا به عنوان استفاده از داده های مکانی در ef core را در سایت باگتو مطالعه نمایید.
Ef core را نیز می توانید از nugget دانلود نمایید.در دوره رایگان آموزش asp.net core به آموزش ef core می پردازیم.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید