CodeFirst یا DatabaseFirst مسئله اینست
برای بسیاری از افراد که میخواهند وارد عرصه معماری MVC شوند همیشه سوال مطرح بوده که با کدام روش باید شروع کرد و ادامه داد.
بطور کلی سه رویکرد برای توسعه دهندگان Entityframework وجود دارد
· Database First
· Code First
· Model First
که دو مورد اول از محبوبیت بیشتری برخوردار هستند. ما هم در این مقاله به ویژگی های این دومورد میپردازیم.
Code First
در رویکرد Code First ابتدا موجودیت ها بصورت کلاس به همراه Properties های ان ها تعریف میشوند. Entity Framework هم بر اساس کلاس هایی که تعریف شده است دیتابیس و جداول را می سازد به عبارت دیگر دیتابیس از کد تولید میشود. با اجرای دات نت دیتابیس نیز ساخته میشود
مزایای Code First
- شما می تواند جداول و دیتابیس را کاملا منطبق بر لایه منطقی برنامه ایجاد کنید
- شما مشخص میکنید که داده ها بصورت eager Load بازیابی شوند یا نه بصورت serialized یا Lazy Load
- مدیریت کامل بر نسخه ها دیتابیس
- مناسب برای برنامه های متوسط و کوچک
معایب Code First
- شما مجبورید تمامی ارتباطات دیتابیس را خودتان بنویسید
- برای Map کردن StoreProcedure ها مجبورید از توابع Fluent API استفاده کنید و StoreProcedure ها را داخل کد بیاورید
- با هر تغییر کوچکی جداول دیتابیس شما باید کلاس ها را تغییر داده سپس دستور update-database را در package manager console اجرا کنید
- برای برنامه های کاربردی پیچیده ترجیح داده نمیشود
رویکرد Database First
در این روش دیتا مدل شما بر اساس دیتابیس ایجاد میشود
مزایای DataBase First
- بسادگی Data Model شما ساخته میشود
- کاربری گرافیکی از مدل در دسترس شما خواهد بود
- Map کردن ها، ارتباطات بین جداول، کلید های خارجی و... به آسانی ایجاد میشوند و نیازی به کدنویسی برای آنها ندارید
- برای برنامه های کاربردی پیچیده و بزرگ پیشنهاد میشود
معایب DataBase First
- تولید کدهای خودکار زیادی برای ایجاد فایل Edmx
- زمانی که تغییری در دیتابیس میدهد مجدد باید مدل شما تولید و یا آپدیت شود
بطور کلی ماهیت برنامه ای که توسعه میدهید، آینده ای که پیش روی برنامه ترسیم کرده اید و کمی سلیقه شخصی در انتخاب رویکرد شما برای استفاده از یکی از روش ها فوق موثر است

دیدگاه کاربران