مشخصات مقاله
-
0
-
0.0
-
3838
-
0
-
0
معرفی Entity Framework Core
معرفی Entity Framework Core
Entity Framework Core نسخه جدید از Entity Framework 6.X به بالاست، متن باز، سبک ، قابل توسعه و cross-platform است.
Entity Framework یک Object/Relational Mapping (O/RM) framework است که برای ارتقاء ADO.NET است که ذخیره و بازیابی داده از دیتابیس را برای توسعه دهندگان راحت کرده است.
EF Core برای استفاده در اپلیکیشن های توسعه یافته با NET Core. است. با این حال، می توان آن را در اپلیکیشن های توسعه یافته با standard .NET framework 4.5 به بعد نیز قابل استفاده است.
در شکل زیر انواع اپلیکیشن های پشتیبانی شده، نسخه های NET Framework. و سیستم عامل ها را می بینید:
لینک های مفید
- EF Core در گیت هاب: https://github.com/aspnet/EntityFrameworkCore
- EF Core Roadmap در سایت مایکروسافت: https://docs.microsoft.com/en-us/ef/core/what-is-new/roadmap
- Issue های EF Core در گیت هاب: https://github.com/aspnet/EntityFrameworkCore/issues
- مستندات رسمی EF Core در سایت مایکروسافت : https://docs.microsoft.com/ef/core
رویکردهای توسعه در EF Core
EF Core دو رویکرد توسعه را پشتیبانی می کند: Code First و Database First. فریمورک EF Core اساسا برای توسعه به روش Code First ساخت شده و پشتیبانی کمی برای توسعه Database First ارائه می دهد. visual designer یا wizard برای DB model از EF Core 2.0 به بعد پشتیبانی نشده است.
در رویکرد Code First، خود EF Core API با استفاده از migration و براساس قراردادها و config هایی که در کلاس های دامین تعیین شده دیتابیس ها و جدول ها را می سازد. این رویکرد برای طراحی Domain Driven Design مناسب است.
مدل Database-first به این صورت است که EF Core API دامین و کلاس های context را براساس دیتابیس موجود و با استفاده از دستورات EF Core می سازد. این مدل پشتیبانی محدودی در EF Core دارد چرا که visual designer یا wizard را پشتیبانی نمی کند.
مقایسه EF Core و EF 6
EF Core نسخه جدید و ارتقاء یافته ای از Entity Framework است که برای نرم افزارهای مبتنی بر Net Core. بکار می رود و هنوز نسبت به EF 6 در ابتدای راه است. قابلیت های زیر مشابه EF 6 در EF Core نیز پشتیبانی می شود:
- DbContext & DbSet
- Data Model
- Querying using Linq-to-Entities
- Change Tracking
- eChanges
- Migrations
کم کم قابلیت های بیشتری از EF 6 در آن ارائه می شود. هنوز قابلیت هایی هست که در EF Core 2.0 پشتیبانی نمی شود مثل:
- EDMX/ Graphical Visualization of Model
- Entity Data Model Wizard (for DB-First approach)
- ObjectContext API
- Querying using Entity SQL.
- Automated Migration
- Inheritance: Table per type (TPT)
- Inheritance: Table per concrete class (TPC)
- Many-to-Many without join entity
- Entity Splitting
- Spatial Data
- Lazy loading of related data
- Stored procedure mapping with DbContext for CUD operation
- Seed data
- Automatic migration
EF Core شامل قابلیت هایی جدیدی است که در EF 6 پشتیبانی نمی شوند. مثل:
- Easy relationship configuration
- Batch INSERT, UPDATE, and DELETE operations
- In-memory provider for testing
- Support for IoC (Inversion of Control)
- Unique constraints
- Shadow properties
- Alternate keys
- Global query filter
- Field mapping
- DbContext pooling
- Better patterns for handling disconnected entity graphs
از این لینک می توانید برای مطالعه بیشتر درمورد تفاوت های EF Core و EF 6 استفاده کنید.
EF Core Database Providers
EF Core از یک provider model برای دسترسی به دیتابیس های مختلف استفاده می کند. این provider ها به صورت NuGet package هستند و قابلیت نصب دارند. در جدول زیر database provider ها و NuGet package های EF Core را می بینید: