میتوانم شکست را بپذیرم اما تلاش نکردن را هرگز!

انتیتی فریم ورک

آموزش انتیتی فریم ورک (Entity Framework)

شرکت مایکروسافت از سال ۲۰۰۸ چارچوب محبوب و کاربردی Entity Framework را تولید کرد که این چارچوب یک ORM است و از سرویس های ADO.NET استفاده می کند. هنگامی که بخواهیم میان زبان برنامه نویسی شی گرای #C و پایگاه داده SQL Server که سیستمی رابطه ای و غیرشی گرا است، ارتباط برقرار کنیم از مفهوم Object Relational Mapping استفاده می کنیم. هدف استفاده از چارچوب Entity Framework این است که بتوان مشکلات و نقایص موجود در روش های قبل مانند: Ad-Hoc, Parametric و Stored Procedure که از کلاس های کتابخانه ADO.NET استفاده می کردند را به حداقل برسانیم.


تاریخچه Entity Framework
مایکروسافت قبل از معرفی Entity Framework، تکنولوژی های RDO، ADO و در آخر ADO.NET رو ارائه کرده بود و برای اکثر این تکنولوژی ها زمان زیادی نیز گذاشته بود.هر کدام از این تکنولوژی ها در زمان خودشون، تکنولوژی نوین و حرکت عظیمی بودند اما با گسترش مفاهیم شی گرایی و نیاز مبرم برنامه نویسان به ایجاد اشیا از داده ها و جداول بانکهای اطلاعاتی، مایکروسافت اقدام به توسعه تکنولوژی ADO.NET کرد و ابتدا امکانات Linq و سپس Entity Framework رو برای تعامل بهتر با شی گرایی مطرح کرد.

Entity Framework چیست؟
Entity Framework مجموعه ای از تکنولوژی ها در ADO.NET (بخشی از چارچوب زبان ASP.NET) است که هدف اون در اختیار گذاشتن برخی از قابلیت های برنامه نویسی شی گرایی بخصوص در استفاده از بانک های اطلاعاتی برای برنامه نویسان می باشد. این فریم ورک یک ORM است که توسط شرکت Microsoft توسعه داده میشه. این فریم ورک از اطلاعات موجود در مدل ها و فایل های نگاشت، برای ترجمه کوئری آبجکتی در برابر موجودیت های جایگزین شده در مدل مفهومی به کوئری های سطح پایگاه داده، استفاده می کنند.

استفاده از Entity Client Data Provider
Entity Framework از Entity Client data provider برای مدیریت اتصال به پایگاه داده، ترجمه کوئری های موجودیت به کوئری های مخصوص منبع داده و بازگردوندن یک datareader که Enrity Framework برای ساختن موجودیت آبجکت ها نیاز داره، استفاده میکنه. زمانی که نیازی به تبدیل شدن به آبجکت ها هم نیاز نباشه، این Provider میتونه به عنوان یک ADO.NET data provider استفاده بشه و خروجی رو به عنوان یک datareader فقط خواندنی (Read-Only) بده.

مزایای استفاده از Entity Framework
دسترسی به داده ها در این فریم ورک بسیار ساده است و به شما این اجازه رو میده تا مدل مفهومی مورد نیاز برای کسب و کار رو ایجاد کنین. EF به شما اجازه میده تا روابط چند به چند رو بدون JOIN های متعدد مدیریت کنید. در این فریم ورک پشتیبانی غنی و خوب از ارث بری ها برای جدول به ازای سلسله مراتب، زیر کلاس و تایپ های به هم چسبیده (Concrete Tybe) وجود داره.

معایب استفاده از Entity Framework
با وجود اضافه شدن امکانات زیاد به نسخه 4 این فریم ورک، اما این ابزار هنوز نسبت به ORM های محبوب، دارای کم و کاستی هایی است. همچنین به دلیل استفاده از Designer، بر روی کدی که تولیده میشه، نمیتوان روی کد ها تسلط زیادی داشت که البته با استفاده از کلاس های Partial، این مسئله تا حدی بهبود داده شده است ولی همچنان تسلط پایینی بر روی کد های تولید شده وجود داره.

فهرست سرفصل ها و رئوس مطالب مطرح شده در این مجموعه آموزشی
  • فصل اول: مقدمه
    • معرفی
    • معماری
    • بررسی سه مدل Database First ،Model Fist ،Code First
    • بررسی مزایا و معایب و فاکتورهای تاثیر گذار جهت انتخاب یکی از روش ها
  • فصل دوم: مدل Database First
    • توضیحات کلی و بررسی این مدل
    • ساخت و بررسی مدل
    • نگاشت مدل و دیتابیس
    • بروز رسانی مدل توسط دیتابیس در صورت تغییر
    • نگاشت نوع داده خاص با مدل
    • و . . .
  • فصل سوم: مدل Model First
    • توضیحات کلی و بررسی این مدل
    • ساخت و بررسی مدل
    • برقراری انواع رابطه ها
    • تولید شمای دیتابیس
    • نگاشت نوع داده خاص با مدل
    • بروز رسانی مدل توسط دیتابیس در صورت تغییر
    • و . . .
  • فصل چهارم: مدل Code First
    • توضیحات کلی و بررسی مدل
    • مزایا و معایب مدل
    • طراحی کلاس های Domain
    • ساخت DbContext
    • ساخت دیتابیس از روی مدل و تنظیمات اولیه
    • Relationship و بررسی رابطه های یک به یک (One-To-One)، یک به چند(One-To-Many)و چند به چند(Many-To-Many)و نحوه پیاده سازی آنها
    • ایندکس گذاری
    • پیاده سازی Store Procedure و Function ها تعریف شده توسط کاربر
    • ارث بری
    • FluentApi ها
    • اعتبارسنجی داده ها
    • IValidateableObject
    • Validation Attribute
    • اعتبار سنجی سفارشی
    • بررسی اعتبار سنجی هنگام تغییر Context
    • Migrations
    • اجرای Query های ساده تا پیشرفته با EF
    • اجرای کلیه دستورات مانند: Select ،Where ،OrderBy ،GroupBy ،Like ،Contains و …
    • Left Join و Full Join
    • اجرای کوئری با ۳ روش Native sql ،Entity sql ،Linq
    • انجام عملیات ها در دو حالت Connected و Disconnected
    • LazyLoading ،EagerLoading ،ExplicitLoading
    • حل مشکل حروف ی و ک
    • استفاده از SQL Server Profiler و Entity Framework Profiler جهت مشاهده و Debug کوئری ها
    • تکنیک های پیشرفته EF با کتابخانه ی Entity Framework Extended
    • بررسی نحوه ردیابی تغییرات
    • ارسال و دریافت نتیجه ی همزمان چند Query با استفاده از FutureQuery
    • Unit Test
    • آشنایی با مفاهیم اولیه ی Unit Testing و ابزارهای Visual Studio برای نوشتن و اجرای Test Case
    • نحوه Map کردن ارث بری به سه روش (TPH ، TPC ، TPT)
    • Attach-Set
    • مدیریت همزمانی(Concurrency)
    • Optimistic و Pessimistic Concurrency و پیاده سازی آنها
    • Precompiled Queries و Precompiled Views
    • اعمال عملیات دسته ای Batch Update و Batch Delete
    • کار با تراکنش ها(Transactions)
    • مدل ACID
    • Isolation Level
    • بررسی انواع Isolation Level مانند Serializable ،Read Commited و … و مزایا و معایب هر یک از آنها
    • کار با الگوهای طراحی (Design Patterns)
    • Repository Pattern
    • تشریح کامل گراف ها در مدل شی گرا و نحوه ی برخورد EF با آنها جهت پیاده سازی Repository های مناسب
    • تست Repository ها و کلاس های نوشته شده با EF
    • آشنایی با رویکرد Domain Driven در طراحی نرم افزار
  • فصل پنجم: پیاده سازی پروژه
    • Database First در Windows Forms
    • Model First در Windows Forms
    • Code First در Windows Forms

برای یادگیری Entity Framework چه چیز را باید از قبل بدانیم !
قبل از اینکه مطالعه ی آموزش Entity Framework (انتیتی فریم ورک) را شروع کنید، شما باید دانش پایه ای(حداقلی) از موارد زیر را داشته باشید

  1. سی شارپ - (C#)
  2. مایکروسافت اس‌کیوال سرور - (Microsoft SQL Server)
  3. لینکیو - (LINQ)

موردی یافت نشد

واژگان کلیدی