
ایجاد حرفهای رکورد با ViewModel در EF Core
در معماری MVC (Model-View-Controller)، مدیریت ارتباط بین View (رابط کاربری) و Model (مدل دادهای) اهمیت زیادی دارد. برای جلوگیری از ارسال مستقیم مدلهای دیتابیس به View و بالعکس، از مفهومی به نام ViewModel استفاده میشود. این رویکرد به ما کمک میکند تا دادهها را ایمنتر و ساختاریافتهتر مدیریت کنیم. در این آموزش، نحوه استفاده از ViewModel برای عملیاتCreate در EF Core 9 را به صورت مرحلهبهمرحله توضیح میدهیم. و با ایجاد حرفهای رکورد با ViewModel در EF Core آشنا میشویم.
ایجاد Action برای نمایش فرم
public IActionResult Create()
{
return View();
}ایجاد Action برای دریافت دادهها
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(
[Bind("Id,Name,Family,Phone,Email")] CerateDeveloperViewModel DeveloperVM)
{
if (ModelState.IsValid)
{
var DeveloperM = new Developer()
{
Id = DeveloperVM.Id,
Name = DeveloperVM.Name,
Family = DeveloperVM.Family,
Email = DeveloperVM.Email,
Phone = DeveloperVM.Phone,
RegisterDate = DateTime.Now
};
_context.Add(DeveloperM);
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(DeveloperVM);
}- ابتدا دادههای ViewModel را با ModelState.IsValid بررسی میکنیم.
- در صورت معتبر بودن دادهها، ViewModel به موجودیت (Entity) تبدیل شده. و در دیتابیس ذخیره میشود.
- پس از ذخیره موفقیتآمیز، کاربر به صفحه دیگری هدایت میشود.
نکات تکمیلی
- اعتبارسنجی سمت کلاینت و سرور: اعتبارسنجی در ViewModel به صورت خودکار در سرور اجرا میشود. با استفاده از @section Scripts در View، اعتبارسنجی سمت کلاینت نیز فعال میشود.
- مدیریت خطاها: اگر خطایی در ذخیره داده رخ دهد (مانند مشکلات دیتابیس)، باید به کاربر پیام مناسب نمایش داده شود.
- استفاده از AutoMapper: برای پروژههای بزرگتر، میتوانید از کتابخانه AutoMapper برای تبدیل ViewModel به Entity استفاده کنید
- قابلیت گسترش ViewModel: میتوانید دادههای اضافی مانند لیست دستهبندیها را نیز در ViewModel قرار دهید.
جمعبندی ایجاد حرفهای رکورد با ViewModel در EF Core
- با استفاده از ViewModel در عملیات Create: امنیت دادهها افزایش مییابد.
- ساختار کد تمیزتر و منظمتر میشود.
- مدیریت و اعتبارسنجی دادهها سادهتر خواهد بود.
- این روش نهتنها برای عملیات Create بلکه برای سایر عملیات (مانند Update) نیز بهشدت توصیه میشود.































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