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
Comments
Post a Comment