مقایسه Entity Framework Core و Entity Framework 6

تکنولوژی Entity Framework Core نسل بعدی Entity Framework است که توسط مایکروسافت معرفی شده است. در واقع می‌توانیم بگوییم که Entity Framework Core برای استفاده در برنامه‌هایی است که با .NET Core طراحی شده اند معرفی شده است. در این پست از وب سایت پرووید مقایسه کوتاهی را بین Entity Framework Core و Entity Framework 6 خواهیم داشت.

باید همین‌ جا بگوییم که Entity Framework Core نسخه جدید و بهبود یافته Entity Framework برای نرم افزارهای است که قرار است با .NET Core نوشته شوند. از آنجایی که Entity Framework Core جدید است هنوز به بالغی Entity Framework 6 نیست. بلوغ در نرم افزار مفهومی است که تحت عنوان Maturity از آن یاد می شود. خوب بیاید با هم دیگر در رابطه با قابلیت هایی که در Entity Framework Core پشتیبانی می‌شوند صحبت کنیم. مفاهیم و ویژگی هایی که در ورژن قبلی Entity Framework یعنی Entity Framework 6 با آنها رو به رو بودیم. موارد زیر برخی از ویژگیها و مفاهیمی است که در Entity Framework 6 وجود داشتند و در Entity Framework Core نیز پشتیبانی می شوند:

  1. DbContext و DbSet
  2. Data Model
  3. Querying using Linq-to-Entities
  4. Change Tracking
  5. SaveChanges
  6. Migrations

همین جا باید بگوییم که Entity Framework Core به مرور تمامی ویژگیهای Entity Framework 6 را پشتیبانی خواهد کرد اما در حال حاضر برخی از ویژگی ‌های Entity Framework 6 هستند که در نسخه دوم از Entity Framework Core پشتیبانی نمی شوند. برخی از این موارد را در قسمت پایین برای شما لیست کرده ایم.

  1. EDMX/ Graphical Visualization of Model
  2. Entity Data Model Wizard (for DB-First approach)
  3. ObjectContext API
  4. Querying using Entity SQL.
  5. Automated Migration
  6. Inheritance: Table per type (TPT)
  7. Inheritance: Table per concrete class (TPC)
  8. Many-to-Many without join entity
  9. Entity Splitting
  10. Spatial Data
  11. Lazy loading of related data
  12. Stored procedure mapping with DbContext for CUD operation
  13. Seed data
  14. Automatic migration

علاوه بر مواردی که در Entity Framework 6 وجود داشتند و در Entity Framework Core در حال حاضر پشتیبانی نمی شوند مواردی نیز در Entity Framework Core وجود دارند که در ورژن قبلی یعنی Entity Framework 6 موجود نبودند. در قسمت زیر لیستی از این موارد را برای شما در نظر گرفته ایم:

  1. Easy relationship configuration
  2. Batch INSERT, UPDATE, and DELETE operations
  3. In-memory provider for testing
  4. Support for IoC (Inversion of Control)
  5. Unique constraints
  6. Shadow properties
  7. Alternate keys
  8. Global query filter
  9. Field mapping
  10. DbContext pooling
  11. Better patterns for handling disconnected entity graphs