عملیات CRUD در EF Core چطور انجام میشود؟
چهار عملیات پایه Create/Read/Update/Delete روی داده، با استفاده از DbContext و Change Tracking خودکار EF Core.
چرا مهم است؟
تقریباً هر برنامهای در هستهاش یک سری عملیات CRUD دارد؛ EF Core این عملیات را بدون نوشتن SQL دستی، با کد C# ساده و Type-Safe انجام میدهد.
مثال کامل CRUD
// Create
var product = new Product { Name = "Laptop", Price = 25000000 };
context.Products.Add(product);
await context.SaveChangesAsync();
// Read
var product = await context.Products.FindAsync(id);
var expensive = await context.Products.Where(p => p.Price > 1000000).ToListAsync();
// Update
product.Price = 23000000;
await context.SaveChangesAsync(); // EF تغییر را از طریق Change Tracker تشخیص میدهد
// Delete
context.Products.Remove(product);
await context.SaveChangesAsync();
نکته کلیدی: Change Tracking
وقتی یک Entity را با Find/ToListAsync میخوانید، EF Core بهصورت خودکار وضعیتش را رصد میکند؛ برای Update فقط کافی است مقدار Property را عوض کنید، نیازی به فراخوانی صریح «Update» نیست.
اشتباه رایج
❌ فراخوانی SaveChangesAsync() را فراموش کردن بعد از Add/Remove — بدون آن، هیچ تغییری واقعاً به دیتابیس نوشته نمیشود؛ عملیات فقط در حافظه (Change Tracker) باقی میماند.
منبع و مطالعه بیشتر
خلاصه
CRUD در EF Core با DbContext و Change Tracking خودکار انجام میشود؛ برای Update فقط کافی است مقدار Property را تغییر دهید. همیشه بعد از Add/Remove/تغییر، SaveChangesAsync را فراخوانی کنید. مرجع کامل: مستندات CRUD در EF Core، Microsoft Learn.
