Entity Framework Core (EF Core) is an Object-Relational Mapping (ORM) framework provided by Microsoft for .NET Core and .NET 8 applications. It enables developers to work with relational databases using .NET objects, allowing for a more object-oriented approach to database interaction. Here's a comprehensive guide to using Entity Framework Core in .NET:
1. Installation and Setup:
To get started with Entity Framework Core in a .NET 8 application: a. Install EF Core:dotnet add package Microsoft.EntityFrameworkCoreb. Install Database Provider: Choose a database provider such as SQL Server, SQLite, PostgreSQL, MySQL, etc., and install its EF Core package. For example, for SQL Server:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
2. Define Database Context:
Create a class that inherits from `DbContext` to represent your database session and define your database tables as `DbSet` properties within it.using Microsoft.EntityFrameworkCore; public class MyDbContext : DbContext { public DbSet<User> Users { get; set; } // Add other DbSets for your entities here protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("YourConnectionString"); } }
3. Define Entities:
Create classes to represent your database tables. These classes will become the entities managed by EF Core.public class User { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
4. Migrations:
Migrations are used to create and update the database schema based on your entity classes. a. Add Initial Migration:dotnet ef migrations add InitialCreateb. Update Database:
dotnet ef database update
5. Querying Data:
Use LINQ queries to retrieve data from the database.using (var context = new MyDbContext()) { var users = context.Users.Where(u => u.Age > 18).ToList(); }
6. Adding, Updating, and Deleting Data:
Use EF Core methods to perform CRUD operations on your entities.using (var context = new MyDbContext()) { // Add new user var newUser = new User { Name = "John", Age = 25 }; context.Users.Add(newUser); context.SaveChanges(); // Update user var userToUpdate = context.Users.Find(1); userToUpdate.Name = "Updated Name"; context.SaveChanges(); // Delete user var userToDelete = context.Users.Find(1); context.Users.Remove(userToDelete); context.SaveChanges(); }