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();
}