C# Entity Framework

Entity Framework – це посередник між класами і різними БД:
My SQL Server, Oracle, MySQL, postgreSQL

  • EF – не потребує SQL-запитів
  • Е більш захищений від SQL-ін'єкцій
  • Пишемо однаковий код для різних БД, різниця лише в їх підключенні
  • Працюємо з об'єктами та їх колекціями, а не з таблицями

Мінуси: через посередника трохи падає продуктивність,
при великих навантаженнях переходимо на чистий ADO.NET

 


 

NuGet-пакети

Microsoft.EntityFrameworkCore.SqlServer – лише для одної БД (у разі помилки – беремо попередню версію)

EntityFramework – для усіх БД

Microsoft.EntityFrameworkCore.Tools – для моделі Code First

 


 

Code First – на основі коду

DB First – на основі БД

Model-First – на основі графічної-моделі

 


 

Міграція – синхронізує БД з новими полями у класах

Package Manager Console -> Add-Migration Назва   (потрібні NuGet-пакети)

 


 

Взаємодія з БД відбувається через спеціальний клас

public class AnyClassName : DbContext
{
  public DbSet<User> Users { get; set; }

  public ApplicationContext()
  {
    Database.EnsureCreated();
  }

  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  {
    optionsBuilder.UseSqlServer("Server=DESKTOP-FJ7A2PR;Database=MyDataBaseName;Trusted_Connection=True;");
  }
}

 


 

public class User
{
  [Key]
  public int UserCode { get; set; }
  public string Name { get; set; }
  public string Password { get; set; }
}

 


 

Package Manager Console

Add-Migration Initial

 

 

[ Більше ]