ویوهای داینامیک برای روابط یک به یک در EF Core

تهران آی تی / برنامــه نویــسـی / ویوهای داینامیک برای روابط یک به یک در EF Core

ویوهای داینامیک برای روابط یک به یک در EF Core

در آموزش ویوهای روابط یک به یک در EF Core، یاد می‌گیریم چگونه داده‌های مرتبط در یک رابطه یک به یک را در View نمایش دهیم. ابتدا از ViewModel برای تجمیع داده‌ها استفاده کرده و سپس در یک View در ASP.NET Core MVC اطلاعات را نمایش خواهیم داد. همچنین، نحوه ایجاد کنترلر های مرتبط را نیز برسی میکنیم.

کنترلر – Controller دانشجو Student

کنترلر StudentController در ASP.NET Core MVC مسئول مدیریت عملیات مرتبط با دانشجویان است. این کنترلر از یک سرویس به نام IStudentService استفاده می‌کند. که عملیات CRUD را روی داده‌های دانشجویان انجام می‌دهد.

وابستگی به سرویس دانشجویان : در این کنترلر، از طریق تزریق وابستگی (Dependency Injection)، یک نمونه از IStudentService دریافت و در متدهای مختلف برای انجام عملیات روی داده‌های دانشجویان استفاده می‌شود. این کار باعث جدا شدن لایه کنترلی (Controller) از لایه سرویس (Service) میشود. و کدها را خواناتر و قابل نگهداری‌تر می‌کند.

private readonly IStudentService _studentService;
public StudentController(IStudentService studentService)
{
_studentService = studentService;
}
public async Task<IActionResult> Index()
{
return View(await _studentService.GetAllStudentsAsync());
}
public async Task<IActionResult> Details(int? id)
{
if (id == null)return NotFound();
return View(await _studentService.GetStudentByIdAsync(id.Value));
}
public IActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Name,Family,Email")] StudentViewModel student)
{
if (ModelState.IsValid)
{
await _studentService.CreateStudentAsync(student);
return RedirectToAction(nameof(Index));
}
return View(student);
}
public async Task<IActionResult> Edit(int? id)
{
if (id == null) return NotFound();
return View(await _studentService.GetStudentByIdAsync(id.Value));
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,Family,Email")] StudentViewModel student)
{
if (id != student.Id) return NotFound();
if (ModelState.IsValid)
{
await _studentService.UpdateStudentAsync(student);
return RedirectToAction(nameof(Index));
}
return View(student);
}
public async Task<IActionResult> Delete(int? id)
{
if (id == null) return NotFound();
return View(await _studentService.GetStudentByIdAsync(id.Value));
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
await _studentService.DeleteStudentAsync(id);
return RedirectToAction(nameof(Index));
}

کنترلر – Controller کارت دانشجویی StudentCard

کنترلر StudentCardController در ASP.NET Core MVC مسئول مدیریت عملیات مرتبط با کارت دانشجویان است. این کنترلر از یک سرویس به نام IStudentCardService استفاده می‌کند. که عملیات CRUD را روی داده‌های کارت دانشجویان انجام می‌دهد.

وابستگی به سرویس کارت دانشجویان : در این کنترلر، از طریق تزریق وابستگی (Dependency Injection)، یک نمونه از IStudentCardService دریافت و در متدهای مختلف برای انجام عملیات روی داده‌های کارت دانشجویان استفاده می‌شود. این کار باعث جدا شدن لایه کنترلی (Controller) از لایه سرویس (Service) میشود. و کدها را خواناتر و قابل نگهداری‌تر می‌کند.

private readonly IStudentCardService _CardService;
private readonly IStudentService _studentService;
public StudentCardsController(IStudentCardService CardService,
IStudentService studentService)
{
_CardService = CardService;
_studentService = studentService;
}
public async Task<IActionResult> Details(int? id)
{
if (id == null) return NotFound();
return View(await _CardService.GetCardByIdAsync(id.Value));
}
public async Task<IActionResult> Create(int? StudentId)
{
if (StudentId == null) return BadRequest();
var CheckStudentId = await _studentService.GetStudentByIdAsync(StudentId.Value);
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,NumberCard,ExpirationDate,StudentId")] StudentCardViewModel studentCard)
{
if (ModelState.IsValid)
{
await _CardService.CreateCardAsync(studentCard);
return RedirectToAction(nameof(Index),"Students");
}
return View(studentCard);
}
public async Task<IActionResult> Edit(int? id)
{
if (id == null) return NotFound();
return View(await _CardService.GetCardByIdAsync(id.Value));
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,NumberCard,ExpirationDate,StudentId")] StudentCardViewModel studentCard)
{
if (id != studentCard.Id) return NotFound();
if (ModelState.IsValid)
{
await _CardService.UpdateCardAsync(studentCard);
return RedirectToAction(nameof(Index),"Students");
}
return View(studentCard);
}
public async Task<IActionResult> Delete(int? id)
{
if (id == null) return NotFound();
return View(await _CardService.GetCardByIdAsync(id.Value));
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
await _CardService.DeleteCardAsync(id);
return RedirectToAction(nameof(Index), "Students");
}

جستجو کنید
دسترسی سریع
دسته ها

طراحی و پیاده سازی پروژه های طراحی سایت دانشجویی

انجام، اجرا و طراحی پروژه های طراحی سایت برای دانشجویان با HTML CSS PHP ASP.NET JAVA و ... با کمترین هزینه. برای مشاهده نمونه کارها و یا دریافت مشاوره رایگان از تیم طراحی سایت تهران آی تی با ما در تماس باشید. ما بهترین پروژه های طراحی سایت را با حداقل هزینه برای شما طراحی میکنیم - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

مطالب مرتبط

لطفا از مطالب مرتبط با این پست دیدن فرمایید

جــذاب های هفته

از پربازدیدترین مطالب تهران آی تی در هفته ای که گذشت دیدن فرمایید

باورکردنی نیست فقط با 300 هزار تومان

طراحی سایت شما + طراحی اپلیکیشن هدیه و رایگان
این یک حراج است در مدت زمان محدود - شرکت های زیادی سایت های ارزان طراحی میکنند اما آیا کیفیت لازم را دارا هستند؟ طراحی سایت ارزان به همراه اپلیکیشن رایگان هدیه برای اولین بار توسط تهران آی تی مخصوص سازمان ها و کسب و کار های کوچک و بزرگ و حتی جدید تیم طراحی سایت تهران آی تی در کنار شماست تا شناخته شوید - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

پشتیبانی 24 ساعته

تیم تهران آی تی در هفت روز هفته و 24 ساعت روز آماده پاسخ گویی به سوالات کاربران و ارائه مشاره رایگان میباشد