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

Comments

Popular posts from this blog

Entry-Level Cybersecurity Jobs You Can Apply For Today

Understanding Snowflake Editions: Standard, Enterprise, Business Critical

Installing Tosca: Step-by-Step Guide for Beginners