انواع روش های Entityframework

Entity Framework سه روش برای ساخت entity model ارائه می دهد که هر کدام مزایا و معایب خودش را دارد.

  • Code First
  • Database First
  • Model First

در ادامه به طور خلاصه هر کدام را بررسی خواهیم کرد.

Code First چیست؟

از نسخه EntityFramework 4.1 به بعد CodeFirst معرفی شد .  به عنوان یک توسعه دهنده شما در ابتدا شروع به نوشتن کلاس ها و محتوای آن می کنید و زمانی که شما برنامه را اجرا کردید API های CodeFirst یک دیتابیس جدید ایجاد می کند (در صورتی که هنوز موجود نباشد) و همچنین شما می توانید یک دیتابیس خالی داشته باشید و CodeFirst جداول آن را ایجاد کند .
قبل از ادامه توضیحات اجازه دهید که شما را با Domain یا دامنه آشنا کنیم . Domain یا دامنه به همه ی مقادیری که یک data element ممکن است قبول کند اطلاق می شود. برای مثال فرض کنید یک جدول در دیتابیس داریم که اطلاعات افراد مختلف را در خود ذخیره می کند ،یکی از ستون هایی که این جدول می تواند داشته باشد ستون gender (جنسیت) است. این ستون می توان مقدار male (مذکر) یا female (مونث) یا null را داشته باشد .بنابراین می توان نتیجه گرفت دامنه ی ستون جنسیت male و female است. در اینجا نیز دامنه ی دیتابیس ما ،کلاس ها یا می توانیم بگوییم جداولی است داخل Domain class تعریف کرده ایم. شکل کلی کار در CodeFirst به صورت زیر است:

  1. شما کلاس های دامنه و محتوای آن ها را می نویسید .
  2. برنامه را اجرا می کنید .
  3. API های CodeFirst از کلاس های دامنه یک دیتابیس یا دیتابیسی که از قبل موجود است را ایجاد می کند .
  4. داده های پیشفرض را به دیتابیس ارسال می کند.
  5. و سرانجام برنامه راه اندازی می شود.

code-first

Model First چیست؟

در این روش شما برای ساخت EntityDataModel ، Entity ها و ارتباطات بین جداول، از ابزار های طراحی که ORM در ویژوال استودیو در اختیار شما قرار می دهد استفاده کرده و سپس، فریم ورک آن را به دیتابیس فیزیکی تبدیل می کند . به عبارت ساده تر شما نقاشی دیتابیس را با ابزار های ویژوال استودیو می کشید و سپس API های ModelFirst با استفاده از آن جداول و ارتباطات بین آنها را ایجاد می کند.

ModelFirst

Database First چیست؟

در این روش شما به صورت عادی دیتابیس خود را در SQL Management Studio طراحی می کنید و جداول ،کلید های اصلی و خارجی و هر چیزی که نیاز دارید را ایجاد می کنید و فریم ورک آن را به کلاس های دات نت تبدیل می کند. حال کدام روش را انتخاب کنیم؟ فلوچارت زیر در انتخاب روش مناسب به شما کمک می کند :

VosmF

همانطور که در این فلوچارت مشخص است :