
نمایش حرفهای لیست با ViewModel در EF Core
در این آموزش به نمایش حرفهای لیست با ViewModel در EF Core میپردازیم. یکی از وظایف اصلی در هر پروژهای که از EF Core 9 استفاده میکند، نمایش دادهها به صورت لیست در واسط کاربری است. در این آموزش، با بهرهگیری از ViewModel، نحوه ساخت و نمایش لیستهای بهینه و سازمانیافته را بررسی خواهیم کرد. در معماری MVC، ویو مدل یک لایه میانی بین مدل و ویو است. که مزایای زیر را فراهم میکند:
- ارسال فقط دادههای ضروری به View
- کاهش پیچیدگی و جلوگیری از ارسال دادههای اضافی
- افزایش خوانایی و مدیریتپذیری کد
پیادهسازی نمایش حرفهای لیست با ViewModel
دادهها را از دیتابیس بازیابی کرده و آنها را به ViewModel تبدیل میکنیم. این کار را میتوان با استفاده از LINQ انجام داد.
public async Task<IActionResult> Index()
{
var DeveloperM = await _context.developers.Select(a => new
{
a.Id,
a.Name,
a.Family,
a.Email
}).ToListAsync();
List<ListDeveloperViewModel> developerVM = new List<ListDeveloperViewModel>();
foreach (var item in DeveloperM)
{
developerVM.Add(new ListDeveloperViewModel
{
Id = item.Id,
Name = item.Name,
Family = item.Family,
Email = item.Email
});
}
return View(developerVM);
}نکات مهم
- بهینهسازی دادهها: از Include برای واکشی دادههای مرتبط استفاده کنید تا نیازی به درخواستهای اضافی به دیتابیس نباشد.
- استفاده از DTO در پروژههای پیچیده: اگر نیاز به مدیریت بیشتر دارید. از DTO بهعنوان لایهای جداگانه بین مدل و ViewModel استفاده کنید.
- کاهش بار واسط کاربری: از ارسال دادههای اضافی یا پیچیده به View خودداری کنید.
نتیجهگیری
با استفاده از ViewModel، میتوانید دادهها را به شکلی سادهتر و بهینهتر مدیریت و نمایش دهید. این روش به شما کمک میکند تا کدهای سازمانیافتهتری داشته باشید و تجربه کاربری بهتری ارائه دهید. در بخش بعدی، به بررسی نحوه پیادهسازی فیلتر و جستجو در این لیستها میپردازیم.






























من بعد از ران کردن پروژه در در حلقه فور ایچ در ویوی ایندکس کنترلر دولوپر خطای
System.NullReferenceException: 'Object reference not set to an instance of an object.'
دریافت کردم
خطای System.NullReferenceException: 'Object reference not set to an instance of an object.' نشاندهنده این است که در کد شما سعی شده است به یک شیء دسترسی پیدا شود که مقدار آن null است.
میتوانید به صورت زیر مقدار Null را برسی کنید
<code>Name = item.Name ?? "No Name",
Family = item.Family ?? "No Family",
Email = item.Email ?? "No Email"</code>
سوالم اصلاح میکنم
من بعد از ران کردن پروژه بر روی مدل(model) در حلقه فور ایچ در ویوی ایندکس کنترلر دولوپر خطای
System.NullReferenceException: ‘Object reference not set to an instance of an object.’
دریافت کردم
کد:
@foreach (var item in Model) {
Html.DisplayFor(modelItem => item.Name ?? "NoName") @
Html.DisplayFor(modelItem => item.Family ?? "NoNamily") @
Html.DisplayFor(modelItem => item.Email ?? "NoEmail") @
پروژه خود را زیپ و ایمیل کنید تا مورد برسی قرار بدم.