جادوی Scaffolding در EF Core

در این قسمت از دوره پیشرفته Entity Framework Core 9 به جادوی Scaffolding در EF Core میپردازیم. و نحوه‌ی انجام عملیات CRUD را در EF Core 9 با استفاده از ابزار Scaffolding مورد برسی قرار میدهیم. عملیات CRUD مجموعه‌ای از عملیات های پرکاربرد است. که برای ایجاد، خواندن، به‌روزرسانی و حذف داده‌ها استفاده می‌شود. EF Core 9 امکان ایجاد خودکار کدهای مورد نیاز این عملیات را با Scaffolding فراهم کرده است. این ابزار با تولید مدل‌ها، کنترلرها و Viewها به شما کمک می‌کند. تا به سرعت و بدون کدنویسی دستی، پروژه‌های پایگاه داده‌محور خود را توسعه دهید.

Scaffolding به شما امکان می‌دهد. بدون نیاز به کدنویسی دستی، به‌صورت خودکار کدهای موردنیاز را تولید کنید.

در این آموزش، ابتدا با استفاده از Scaffolding یک کنترلر CRUD می‌سازیم. و هر یک از عملیات را به تفصیل بررسی می‌کنیم. تا بتوانید پروژه‌های حرفه‌ای‌تری با EF Core ایجاد کنید. این آموزش به شما کمک می‌کند تا با قابلیت‌های جدید EF Core 9 و ابزارهای آن به خوبی آشنا شوید و مهارت‌های خود را در توسعه‌ی برنامه‌های ASP.NET Core به سطح بالاتری برسانید.

Scaffolding در EF Core

Scaffolding در EF Core یک ابزار قدرتمند برای تولید خودکار کد است. که به توسعه‌دهندگان اجازه می‌دهد. بدون نیاز به کدنویسی دستی، ساختارهای پایه‌ای و عملیات CRUD را برای مدل‌های خود ایجاد کنند. این فرآیند با تحلیل مدل‌های داده و پایگاه داده، کدهای مرتبط مانند کنترلرها، Viewها و کلاس‌های مدل را به‌طور خودکار تولید می‌کند.

استفاده از Scaffolding در EF Core باعث می‌شود. که زمان توسعه کاهش یابد و خطاهای احتمالی که ممکن است در کدنویسی دستی رخ دهند. به حداقل برسند. و به توسعه‌دهندگان امکان می‌دهد که به سرعت ساختارهای اصلی مورد نیاز برای کار با داده‌ها را بسازند. و تمرکز خود را بر روی بخش‌های پیچیده‌تر پروژه بگذارند.

کد های Scaffolding

  • ایجاد یک نمونه از DbContext
private readonly MyDbContext _context;
public UsersController(MyDbContext context)
{
    _context = context;
}
  • عملیات نمایش – Read
// GET: Users
public async Task<IActionResult> Index()
{
    return View(await _context.appUsers.ToListAsync());
}
// GET: Users/Details/5
public async Task<IActionResult> Details(int? id)
{
    if (id == null)
    {
        return NotFound();
    }
    var appUser = await _context.appUsers
        .FirstOrDefaultAsync(m => m.Id == id);
    if (appUser == null)
    {
        return NotFound();
    }
    return View(appUser);
}
  • عملیات ایجاد – Create
// GET: Users/Create
public IActionResult Create()
{
    return View();
}
// POST: Users/Create
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see https://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Name,Family,City,Gender")] AppUser appUser)
{
    if (ModelState.IsValid)
    {
        _context.Add(appUser);
        await _context.SaveChangesAsync();
        return RedirectToAction(nameof(Index));
    }
    return View(appUser);
}
  • عملیات بروزرسانی – Update
// GET: Users/Edit/5
public async Task<IActionResult> Edit(int? id)
{
    if (id == null)
    {
        return NotFound();
    }
    var appUser = await _context.appUsers.FindAsync(id);
    if (appUser == null)
    {
        return NotFound();
    }
    return View(appUser);
}
// POST: Users/Edit/5
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see https://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,Family,City,Gender")] AppUser appUser)
{
    if (id != appUser.Id)
    {
        return NotFound();
    }
    if (ModelState.IsValid)
    {
        try
        {
            _context.Update(appUser);
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!AppUserExists(appUser.Id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }
        return RedirectToAction(nameof(Index));
    }
    return View(appUser);
}
private bool AppUserExists(int id)
{
    return _context.appUsers.Any(e => e.Id == id);
}
  • عملیات حذف – Delete
// GET: Users/Delete/5
public async Task<IActionResult> Delete(int? id)
{
    if (id == null)
    {
        return NotFound();
    }
    var appUser = await _context.appUsers
        .FirstOrDefaultAsync(m => m.Id == id);
    if (appUser == null)
    {
        return NotFound();
    }
    return View(appUser);
}
// POST: Users/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
    var appUser = await _context.appUsers.FindAsync(id);
    if (appUser != null)
    {
        _context.appUsers.Remove(appUser);
    }
    await _context.SaveChangesAsync();
    return RedirectToAction(nameof(Index));
}

کلمات کلیدی - تگ‌ها

از کلمات کلیدی و تگ‌های مربوط به جادوی Scaffolding در EF Core دیدن فرمایید.

تصویر کلمات کلیدی مرتبط با جادوی Scaffolding در EF Core

مشاهده در آپارات یا یوتیوب

محتوای ویدیویی این صفحه در سایت قابل مشاهده است. اما اگر عادت دارید توی پلتفرم آپارات یا یوتیوب ویدیوها را مشاهده کنید، می‌توانید از دکمه‌های زیر استفاده کنید.

تماشای ویدیوی جادوی Scaffolding در EF Core در آپارات و یوتیوب

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه جادوی Scaffolding در EF Core در شبکه‌های اجتماعی

نظرات شما برای ما ارزشمند است

متاسفانه تاکنون پیامی برای این مطلب ثبت نشده است. شما اولین شخصی باشید که پیام می‌گذارد.

نظرات کاربران

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.