آموزش Entity Framework

دسته بندی: دسترسی به داده

آموزش انتیتی فریمورک

آنچه در این صفحه می خوانید:

معرفی Entity Framework

Entity Framework یک فریمورک نگاشت شی رابطه‌ای اوپن سورس با تکنولوژی ORM برای ADO.NET است. شرکت مایکروسافت زیرمجموعه ای از ORM به نام انتیتی فریمورک را با هدف داشتن بعضی از قابلبت‌های برنامه‌نویسی شی‌گرا در استفاده از بانک های اطلاعاتی برای برنامه‌نویسان تولید کرد. در واقع انتیتی فریمورک تکنولوژی توسعه یافته ADO.Net است.

The Entity Framework مجموعه ای از فناوری ها در ADO.NET است که از توسعه برنامه های نرم افزاری مبتنی بر داده پشتیبانی می کند. معماران و توسعه دهندگان برنامه های داده گرا معمولاً با نیاز به دستیابی به دو هدف بسیار متفاوت دست و پنجه نرم کرده اند. آنها باید موجودیت ها، روابط و منطق مشکلات تجاری را که حل می کنند، الگوبرداری کنند و همچنین باید با موتورهای داده استفاده شده برای ذخیره و بازیابی داده ها کار کنند. داده ها ممکن است دارای چندین سیستم ذخیره سازی باشد که هرکدام پروتکل های خاص خود را دارند. حتی برنامه هایی که با یک سیستم ذخیره سازی منفرد کار می کنند باید در برابر الزامات نوشتن کد برنامه کارآمد و پایدار، نیاز سیستم ذخیره را متعادل کنند.

Entity Framework به توسعه دهندگان این امکان را می دهد تا با استفاده از داده ها در قالب اشیاء و خواص خاص دامنه مانند مشتریان و آدرس های کلاینت، بدون نیاز به نگرانی خود از جداول و ستون های پایگاه داده اصلی که این داده ها در آن قرار دارند، نگران باشند. با Entity Framework، توسعه دهندگان می توانند هنگام برخورد با داده ها در سطح بالایی از انتزاع کار کنند و می توانند برنامه های داده گرا را با کد کمتری نسبت به برنامه های سنتی ایجاد و حفظ کنند.

چرا از ORM استفاده می کنیم؟

بیشتر فریمورک های توسعه شامل کتابخانه هایی هستند که دسترسی به داده ها از پایگاه داده های رابطه را از طریق ساختار داده های مانند ضبط می کنند. نمونه کد زیر یک سناریوی معمولی را نشان می دهد که داده ها از یک پایگاه داده بازیابی می شوند و در یک DataTable ADO.NET ذخیره می شوند تا در دسترس با کد برنامه باشد:

    using(var conn = new SqlConnection(connectionString))
    using(var cmd = new SqlCommand("select * from Products", conn))
    {
        var dt = new DataTable();
        using(var da = new SqlDataAdapter(cmd))
        {
            da.Fill(dt);
        }
    }

داده های موجود در DataTable از طریق فهرست سازهای عددی یا رشته ای قابل دسترسی است و باید از شی به نوع صحیح تبدیل شود:

    foreach(DataRow row in dt.Rows)
    {
        int productId = Convert.ToInt32(row[0]);
        string productName = row["ProductName"].ToString();
    }

این رویکرد دیرهنگام یا "ضعیف" برای دسترسی به داده ها مستعد خطا است. معمولاً مشکلاتی در اشتباه بودن نام ستون یا یافتن اینکه نام ستون در دیتابیس تغییر یافته است، یا از تغییر در ترتیب ترتیب فیلدهای موجود در بیانیه SQL ناشی می شود، بدون اینکه تغییری در آن ایجاد شود. کد برنامه به همان اندازه، تبدیل نوع داده ممکن است با شکست مواجه شود. کد هنوز کامپایل می شود، اما در ران تایم خطا خواهد کرد. در نتیجه، توسعه دهندگان حرفه ای ترجیح می دهند با داده هایی به شکلی کاملاً تایپ شده کار کنند.

ویژگی های Entity Framework

یک سیستم ORM سبک و قابل توسعه

مایکروسافت در حال حاضر طراحی مجدد معماری اصلی فریمورک دات نت را از ابتدا طراحی کرده است. توسعه دهندگان هم اکنون می توانند از NET Core. به عنوان یک پلتفرم اوپن سورس و متقابل برای توسعه انواع برنامه ها استفاده کنند. از این رو، توسعه دهندگان می توانند با توجه به نیازهای دقیق هر پروژه، اجزای خاصی را به سیستم ORM اضافه یا حذف کنند.

پشتیبانی از سیستم عامل های جدید

علیرغم اینکه به عنوان یک سیستم ORM سبک وزن طراحی شده است، Entity Framework برای توسعه دهندگان NET. برنامه های مختلفی را با پشتیبانی از چندین سیستم عامل جدید ایجاد می کند.

پشتیبانی از چندین فضای ذخیره داده جدید

علاوه بر پشتیبانی از چندین سیستم عامل جدید، Entity Framework از منابع داده رابطه ای و غیر مرتبط نیز پشتیبانی می کند. این پشتیبانی توسعه دهندگان را قادر می سازد تا با برخی از سیستم های مدیریت پایگاه داده ارتباطی (RDBMS) و پایگاه داده های NoSQL که به طور گسترده استفاده می شوند، کار کنند. توسعه دهندگان می توانند حتی با استفاده از پایگاه داده های گسترده مانند SQL Server ،SQL Server Compact ،SQLite ،PostgreSQL ،Azure Table Storage و IBM Data Server، از نسخه 7 Entity Framework استفاده کنند.

تولید کوئری SQL را بهینه می کند

علاوه بر پشتیبانی از منابع داده جدید ارتباطی و غیر مرتبط، Entity Framework دارای ویژگی هایی برای بهینه سازی نسل پرس و جو SQL است. طراحی مجدد سیستم ORM همراه با ماژول تولید SQL است که بر اساس نیازها و درخواست های کاربران طراحی شده است. این ماژول توسعه دهندگان Dot Net را قادر می سازد با هدف قرار دادن چندین پایگاه داده، یک عبارت SQL SELECT ایجاد کنند. به همین ترتیب، توسعه دهندگان همچنین از ماژول استفاده می کنند تا SQL را بدون پرس و جوهای تو در تو ایجاد کنند.

ویژگی های داخلی لاگین

Entity Framework دارای یک ویژگی ورود به سیستم است که می تواند از طریق رابط ILoggerProvider پیاده سازی شود. توسعه دهندگان می توانند از ویژگی ورود به سیستم در سیستم عامل ها استفاده کنند. ویژگی ورود به سیستم با تجزیه و تحلیل اشکالات، دلایل اصلی و مشکلات عملکردی مبتنی بر مکان های مختلف، توسعه دهندگان را آسانتر می کند.

تسهیل تست واحد

Entity Framework اجرای برنامه های ایجاد، خواندن، به روزرسانی و حذف (CRUD) را با پشتیبانی از منابع داده غیر مرتبط و پایگاه داده های NoSQL آسان می کند. در عین حال، انجام پشتیبانی واحد را با پشتیبانی از جداول درون حافظه، برای توسعه دهندگان آسانتر می کند. توسعه دهندگان می توانند از ارائه دهنده InMemory استفاده کنند تا پایگاه داده های عمومی را برای اهداف آزمایش واحد ایجاد کنند. آن ها هنوز فاقد گزینه استفاده از ارائه دهنده برای تقلید از RDBMS واقعی هستند. اما ارائه دهنده برنامه نویسان را قادر می سازد تا اجزای آزمایش را یکپارچه به یک بانک اطلاعاتی عمومی اختصاص دهند.

  • امکان دسترسی آسان به داده ها
  • مدیریت راحت رابطه‌های یک به یک، یک به چند، و چند به چند بدون نیاز به Join های متعدد
  • دارای روابط ارث بری بین Entities
  • افزودن و حذف و آپدیت راحت تر داده ها
  • به حداقل رساندن پیچیدگی کد ها
  • سازگار با انواع سیستم های مدیریت دیتا
  • دارای پسوند های csdl ،ssdl و msl
  • دارای مدل های domail model ،logical model و physical model
  • یادگیری ساده تر از سایر ORM ها
  • پشتیبانی از LinQ
  • نصب اتوماتیک با Visual Studio
  • دارای کلید اصلی یا primary key
  • پشتیبانی از وراثت در کلاس ها
  • برای توسعه یافتن دارای سه روش database first ،model first ،code first
  • قابلیت انجام عملیات‌های CRUD

معماری Entity Framework

فریمورک Entity بیش از یک راه حل نقشه برداری رابطه شیء ، اساساً در مورد امکان دسترسی به برنامه ها برای دستیابی و تغییر داده هایی است که در مدل مفهومی به عنوان موجودات و روابط ارائه می شوند. فریمورک Entity از اطلاعات موجود در مدل و پرونده های نقشه برداری برای ترجمه نمایش داده های شی در برابر انواع موجود در مدل مفهومی به نمایش داده های منبع خاص داده استفاده می کند. نتایج پرس و جو به اشیاء که فریمورک Entity مدیریت می شود ، تحقق می یابد. Entity Framework روشهای زیر را برای جستجوی مدل مفهومی و بازگشت اشیاء ارائه می دهد:

LINQ به اشخاص. پشتیبانی از جستجوی یکپارچه زبان (LINQ) را برای انواع جستجوی موجودی که در یک مدل مفهومی تعریف شده اند ، فراهم می کند. برای اطلاعات بیشتر ، به LINQ به اشخاص مراجعه کنید.

SQL Entity یک گویش مستقل از SQL که به طور مستقیم با اشخاص در مدل مفهومی کار می کند و از مفاهیم Model Data Entity پشتیبانی می کند. Entity SQL هم با نمایش داده های شی و هم از نمایش داده ها استفاده می شود که با استفاده از ارائه دهنده EntityClient اجرا می شوند. برای اطلاعات بیشتر ، به بررسی اجمالی Entity SQL مراجعه کنید.

فریمورک Entity شامل ارائه دهنده داده های EntityClient است. این ارائه دهنده ارتباطات را مدیریت می کند ، نمایش داده شدگان موجود را به نمایش داده های منبع خاص داده تبدیل می کند و خواننده داده ای را که فریمورکیت Entity برای تحقق داده های موجودیت به اشیاء استفاده می کند ، برمی گرداند. در صورت نیاز به تحقق شیء ، ارائه دهنده EntityClient همچنین می تواند مانند ارائه دهنده داده های استاندارد ADO.NET با فعال کردن برنامه ها برای اجرای نمایش داده های مربوط به Entity SQL و استفاده از خواننده داده برگشت پذیر فقط استفاده شود. برای اطلاعات بیشتر ، به ارائه دهنده EntityClient برای فریمورک Entity مراجعه کنید.

نمودار زیر معماری Entity Framework را برای دسترسی به داده ها نشان می دهد:

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

ابزارهای مدل داده Entity می توانند یک کلاس مشتق از System.Data.Objects.ObjectContext یا System.Data.Entity.DbContext تولید کنند که نمایانگر ظرفیت موجودیت در مدل مفهومی است. این متن شیء امکان ردیابی تغییرات و مدیریت هویت، همزمانی و روابط را فراهم می کند. این کلاس همچنین یک روش SaveChanges را در معرض نمایش قرار می دهد که درج ها، به روزرسانی ها و حذف ها را به منبع داده می نویسد. مانند نمایش داده شده، این تغییرات یا با دستوراتی که به طور خودکار توسط سیستم تولید می شوند یا با روش های ذخیره شده که توسط توسعه دهنده مشخص شده اند، انجام می شود.

آیا این نوشته را دوست داشتید؟
entity-framework-6-in-depth

درک عمیق Entity Framework 6 (انتیتی فریم ورک) - Code With Mosh


Entity Framework یک Mapper (O/RM) رابطه ای/آبجکت است که به شما در خواندن و نوشتن داده ها از یک پایگاه داده کمک می کند. در این دوره، Mosh از طریق یکسری...

1400/03/07 1301 بازدید
pluralsight-building-web-applications-with-asp-net-core-mvc

ساخت وب اپلیکیشن ها با ASP.NET Core MVC


شما در این دوره، می آموزید که چگونه یک وب اپلیکیشن مدرن کاملاً کارآمد را با ASP.NET Core 3.0 MVC بسازید. ابتدا یاد خواهید گرفت که چگونه یک پروژه ASP.N...

1399/09/05 2970 بازدید زیرنویس دارد
pluralsight-testing-with-ef-core

آموزش تست با EF Core


در این دوره، شما نحوه استفاده از EF Core در تست کدی که به تماس با پایگاه داده شما وابسته می باشد را یاد خواهید گرفت. در ابتدا، با شیوه های مختلف تست ا...

1399/08/02 1050 بازدید
pluralsight-getting-started-with-entity-framework-6-2

شروع کار با نسخه 6 Entity Framework


این دوره نقطه ای برای شروع است. یاد می گیرید که کاربرد EF چیست، چگونه کار می کند، به کدام قسمت معماری نرم افزار شما تعلق دارد و چگونه می توانید آن را ...

1399/06/17 1224 بازدید زیرنویس دارد
pluralsight-entity-framework-core-2-1-migrations-fundamentals

مبانی Entity Framework Core 2.1 Migrations


در این دوره، مبانی توسعه و استقرار اپلیکیشن سازمانی با Migrations آشنا می شوید. در ابتدا یاد خواهید گرفت تا Migrations را ایجاد، تست و سازماندهی کنید....

1398/06/15 2511 بازدید
build-a-real-world-app-with-aspnet-core-and-angular-2

ساخت اپلیکیشن های دنیای واقعی با ASP.NET Core و Angular 2


در این ویدئو با ساخت اپلیکیشن های دنیای واقعی با استفاده از ASP.NET Core و Angular 2 آشنا می شوید. ASP.NET Core شبیه MVC5 است و این ویدئو نحوه ساخت اپ...

1398/03/06 3567 بازدید زیرنویس دارد
pluralsight-entity-framework-core-2-1-whats-new-playbook

آموزش Entity Framework Core 2.1 - ویژگی های جدید


هر اپلیکیشن از داده ها استفاده می کند و دانش Entity Framework Core کلیدی برای ایجاد موفقیت آمیز اپلیکیشن های دات نت و NET Core. است. در این دوره با به...

1397/09/25 2739 بازدید
pluralsight-entity-framework-core-2-mappings

آموزش Mappings در Entity Framework Core 2 


Entity Framework Core 2 آخرین نسخه از پلت فرم دسترسی به داده های مدرن OR / M مایکروسافت است. در این دوره، شما یاد خواهید گرفت چگونه از آخرین نسخه Enti...

1397/08/20 2419 بازدید
lynda-using-entity-framework-core-with-legacy-databases

آموزش استفاده از Entity Framework Core با پایگاه داده Legacy 


تمام پروژه های توسعه از ابتدا آغاز نمی شوند. غالبا شما اپلیکیشن هایی را بازنویسی می کنید تا از مزایای منابع مختلف داده یا اتصال به داده های Legacy در ...

1397/08/01 1595 بازدید زیرنویس دارد
teamtreehouse-entity-framework-migrations-course

آموزش تغییر مدل داده در پایگاه داده با مهاجرت در Entity Framework


در این دوره با نحوه استفاده از Entity Framework Code First Migrations برای انتشار تغییرات مدل داده به پایگاه داده، فعال سازی مهاجرت ها، افزودن مهاجرت،...

1397/06/27 1366 بازدید
teamtreehouse-entity-framework-basics-course

آموزش اصول و مبانی Entity Framework


در این دوره با نحوه استفاده از Entity Framework مایکروسافت برای حفظ داده اپلیکیشن در یک پایگاه داده، گردش کار Code First، ایجاد کلاس های entity، نوشتن...

1397/06/08 2183 بازدید
teamtreehouse-entity-framework-data-concurrency

آموزش هم زمانی داده با Entity Framework


در این کارگاه، شما در مورد هم زمانی داده و نحوه اجرای کنترل های هم زمانی داده های خوش بینانه با استفاده از Entity Framework یاد خواهید گرفت. Entity F...

1397/05/12 1490 بازدید
teamtreehouse-entity-framework-query-performance

آموزش عملکرد کوئری Entity Framework


در این کارگاه، شما یاد خواهید گرفت که چگونه با ارزیابی کوئری های Entity Framework و حل مسائل رایج عملکرد آشنا شوید.  ...

1397/05/12 1354 بازدید
teamtreehouse-entity-framework-with-asp-net-mvc-course

آموزش Entity Framework با ASP.NET MVC


در این دوره، شما یاد خواهید گرفت چگونه از Entity Framework در اپلیکیشن وب Comic Book Library Manager (یک اپلیکیشن وب که با استفاده از فریمورک وب ASP.N...

1397/05/07 2611 بازدید
lynda-entity-framework-core-essential-training-1

آموزش اصولی Entity Framework Core - قسمت 1


در این دوره با نحوه کار با Entity Framework Core، کامپوننت های اصلی، مقایسه نسخه های آن، نحوه ایجاد پروژه های جدید، اضافه کردن بسته ها، و استفاده از ک...

1397/01/21 2407 بازدید زیرنویس دارد
lynda-building-applications-with-angular-asp-net-core-and-entity-framework-core

آموزش ساخت اپلیکیشن ها با Angular، ASP.NET Core و Entity Framework Core


ایجاد اپلیکیشن full-stack، نیاز به یکپارچه سازی چندین کامپوننت دارد. در این دوره با نحوه استفاده از Angular، ASP.NET Core و Entity Framework برای ایجا...

1397/01/09 4281 بازدید
wintellectnow-entity-framework-in-n-tier-applications

آموزش Entity Framework در اپلیکیشن های N-Tier


آیا می خواهید برای استفاده از فریمورک Entity در یک برنامه تجاری در دنیای واقعی برنامه ریزی کنید؟ به جای اتصال به پایگاه داده به طور مستقیم از یک اپلیک...

1397/01/08 1680 بازدید
wintellectnow-code-first-development-with-entity-framework

آموزش توسعه Code-First با Entity Framework


روش پیش فرض برای توسعه اپلیکیشن های Entity Framework افزودن یک مدل داده Entity برای پروژه Visual Studio است. با این حال، روش Model First یک مشکلی دارد...

1396/12/25 2211 بازدید
wintellectnow-entity-framework-architecture

آموزش معماری Entity Framework 


Entity Framework برای کمک به توسعه دهندگان در ایجاد پلی بین شکاف دنیای برنامه نویسی شی گرا (OOP) و سیستم های مدیریت پایگاه داده زابطه ای (SQL) طراحی ش...

1396/12/25 2013 بازدید
wintellectnow-entity-framework-overview-and-quick-start

آموزش مبانی Entity Framework


Entity Framework یک ابزار ORM مایکروسافت است که برای پرس و جو و به روز رسانی داده های ارتباطی با استفاده از اشیاء خاص-دامنه به کار می رود. در این دوره...

1396/12/22 1426 بازدید