Monday, June 9, 2025

thumbnail

CRUD Operations in .NET Core

๐Ÿ”„ CRUD Operations in .NET Core (English)

In .NET Core (now .NET 6/7/8), you can implement CRUD operations—Create, Read, Update, and Delete—using Entity Framework Core (EF Core) and ASP.NET Core Web API.


Here’s a step-by-step guide for building CRUD functionality in .NET Core.


๐Ÿงฑ 1. Setup Project and Install EF Core

bash

Copy

Edit

dotnet new webapi -n CrudApi

cd CrudApi


# Install EF Core packages

dotnet add package Microsoft.EntityFrameworkCore

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

dotnet add package Microsoft.EntityFrameworkCore.Tools

๐Ÿ“ฆ 2. Create a Model

csharp

Copy

Edit

public class Product

{

    public int Id { get; set; }

    public string Name { get; set; }

    public decimal Price { get; set; }

}

๐Ÿ›ข️ 3. Create a DbContext

csharp

Copy

Edit

using Microsoft.EntityFrameworkCore;


public class AppDbContext : DbContext

{

    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) {}


    public DbSet<Product> Products { get; set; }

}

Update Program.cs to register the context:


csharp

Copy

Edit

builder.Services.AddDbContext<AppDbContext>(options =>

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

Add a connection string in appsettings.json:


json

Copy

Edit

"ConnectionStrings": {

  "DefaultConnection": "Server=.;Database=CrudDb;Trusted_Connection=True;"

}

✍️ 4. Create CRUD API Controller

csharp

Copy

Edit

using Microsoft.AspNetCore.Mvc;

using Microsoft.EntityFrameworkCore;


[ApiController]

[Route("api/[controller]")]

public class ProductsController : ControllerBase

{

    private readonly AppDbContext _context;


    public ProductsController(AppDbContext context)

    {

        _context = context;

    }


    // GET: api/products

    [HttpGet]

    public async Task<ActionResult<IEnumerable<Product>>> GetProducts()

    {

        return await _context.Products.ToListAsync();

    }


    // GET: api/products/5

    [HttpGet("{id}")]

    public async Task<ActionResult<Product>> GetProduct(int id)

    {

        var product = await _context.Products.FindAsync(id);

        if (product == null) return NotFound();

        return product;

    }


    // POST: api/products

    [HttpPost]

    public async Task<ActionResult<Product>> CreateProduct(Product product)

    {

        _context.Products.Add(product);

        await _context.SaveChangesAsync();

        return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product);

    }


    // PUT: api/products/5

    [HttpPut("{id}")]

    public async Task<IActionResult> UpdateProduct(int id, Product product)

    {

        if (id != product.Id) return BadRequest();


        _context.Entry(product).State = EntityState.Modified;

        await _context.SaveChangesAsync();

        return NoContent();

    }


    // DELETE: api/products/5

    [HttpDelete("{id}")]

    public async Task<IActionResult> DeleteProduct(int id)

    {

        var product = await _context.Products.FindAsync(id);

        if (product == null) return NotFound();


        _context.Products.Remove(product);

        await _context.SaveChangesAsync();

        return NoContent();

    }

}

๐Ÿ› ️ 5. Apply Migrations and Create DB

bash

Copy

Edit

dotnet ef migrations add InitialCreate

dotnet ef database update

๐Ÿ“ฌ 6. Test the API

You can test your CRUD endpoints with:


Postman


curl


Swagger (auto-enabled in .NET Core Web API templates)


Example URLs:


GET /api/products


POST /api/products


PUT /api/products/1


DELETE /api/products/1


๐Ÿ” 7. (Optional) Add Validation

You can use Data Annotations:


csharp

Copy

Edit

public class Product

{

    public int Id { get; set; }


    [Required]

    public string Name { get; set; }


    [Range(0.01, 10000)]

    public decimal Price { get; set; }

}

.NET Core automatically returns 400 Bad Request for invalid models.


✅ Summary: CRUD in .NET Core

Operation HTTP Verb Route Method

Create POST /api/products CreateProduct

Read GET /api/products GetProducts

Read One GET /api/products/1 GetProduct

Update PUT /api/products/1 UpdateProduct

Delete DELETE /api/products/1 DeleteProduct

Learn Full Stack Dot NET Training in Hyderabad

Read More

Building RESTful APIs with ASP.NET Core Web API

Understanding MVC (Model-View-Controller) Architecture in .NET

Visit Our Quality Thought Training in Hyderabad

Get Directions

Subscribe by Email

Follow Updates Articles from This Blog via Email

No Comments

About

Search This Blog

Powered by Blogger.

Blog Archive