+91-90427 10472
         
Dot net training in Chennai -Maria Academy

Database Access in ASP.NET Core using Entity Framework Core

28 Dec 2023

Introduction:

Many web applications depend on database access, which is made easier and more efficient in ASP.NET Core by Entity Framework Core (EF Core). In this post, we’ll examine the foundations of Entity Framework Core and how ASP.NET Core applications can use it to achieve effective and adaptable database access.

Overview of Entity Framework Core:

Entity Framework Core is an object-relational mapping (ORM) framework that enables.NET objects to be used by developers to communicate with databases. Instead of working directly with SQL queries, it allows developers to work with databases using a high-level, object-oriented API.

Entity Framework Core’s key features include:

Model-First Approach: Use C# classes to define your data model, and EF Core will create the corresponding database schema.

LINQ Support: When querying databases, use Language-Integrated Query (LINQ), which makes it easier to express database queries in C# syntax.

Database Migrations: EF Core supports database migrations, allowing for simple schema changes and updates as your application evolves.

Cross-Platform Compatibility: EF Core is designed to work with various database providers, giving you the option of using SQL Server, MySQL, SQLite, and others.

Setting Up Entity Framework Core in ASP.NET Core:

Install the NuGet package for Entity Framework Core:

Install the NuGet package Entity Framework Core in your ASP.NET Core project:

dotnet add package Microsoft.EntityFrameworkCore

Configure Database Provider: Select a database provider (for example, SQL Server) and install the appropriate provider package:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

Configure the database provider using the ConfigureServices method in your Startup.cs file:

public void ConfigureServices(IServiceCollection services)

{

    services.AddDbContext<ApplicationDbContext>(options =>

        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

}

Create DbContext:

Make a class that derives from DbContext in order to create DbContext. This class defines DbSet properties for every entity and represents the database context.

public class ApplicationDbContext : DbContext

{

    public DbSet<User> Users { get; set; }

    // Add more DbSet properties for other entities

}

Configuring the Connection String: Open the appsettings.json file and set the database connection string there.

{

  "ConnectionStrings": {

    "DefaultConnection": "YourConnectionString"

  },

  // Other configurations...

}

Working with Entities and DbContext:

Defining Entities:

Make classes in C# that correspond to your entities. EF Core will map to database tables using these classes.

public class User

{

    public int Id { get; set; }

    public string UserName { get; set; }

    public string Email { get; set; }

    // Other properties...

}

CRUD Operations:

In your application code or controllers, use the DbContext to perform CRUD operations:

public class UserController : ControllerBase

{

    private readonly ApplicationDbContext _context;

    public UserController(ApplicationDbContext context)

    {

        _context = context;

    }

    [HttpGet]

    public ActionResult<IEnumerable<User>> GetUsers()

{

        return _context.Users.ToList();

    }

    [HttpPost]

    public ActionResult<User> AddUser([FromBody] User newUser)

    {

        _context.Users.Add(newUser);

        _context.SaveChanges();

        return newUser;

    }

    // Implement other CRUD operations (Update, Delete) as needed...

}

Database Migrations:

With EF Core, you can use migrations to change the structure of your database. To create and implement migrations, execute the following commands:

dotnet ef migrations add InitialCreate

dotnet ef database update

To establish the initial database schema and implement the modifications, these commands produce SQL scripts.

Conclusion:

Entity Framework Core offers a strong and adaptable ORM framework while streamlining database access in ASP.NET Core. Without requiring in-depth SQL knowledge, developers can effectively interact with databases by defining entities, setting up a DbContext, and using LINQ for querying. EF Core provides a dependable and efficient method for database access in ASP.NET Core, regardless of the size of your project—from a small application to a large enterprise system.

 

 

Social tagging: > >