у меня есть модель
```
    public class Work :IEntity
    {
        [Key]
        public int WorkId { get; set; }

        [Required]
        [MaxLength(50)]
        public string NumberItem { get; set; }

        [MaxLength(50)]
        public string? NodeCode { get; set; }

        [Required]
        [MaxLength(200)]
        public string? CostName { get; set; }

        public string? ISRComment { get; set; }

        public string? ContractorComment { get; set; }

        [MaxLength(50)]
        public string? UnitOfMeasure { get; set; }

        public decimal? ConsumptionCoefficient { get; set; }

        public decimal? BOCount { get; set; }

        public decimal? TotalCount { get; set; }

        public decimal? MatEquipmPrice { get; set; }

        public decimal? SmpPnpPrice { get; set; }

        public decimal? TotalPrice { get; set; }

        public decimal? MatEquipmCost { get; set; }

        public decimal? SmpPnpCost { get; set; }

        public decimal? TotalCost { get; set; }

        // Внешние ключи
        [ForeignKey("Project")]
        public int ProjectId { get; set; }

        [ForeignKey("ParentWork")]
        public int? ParentWorkId { get; set; }

        [ForeignKey("Status")]
        public int StatusId { get; set; }

        [ForeignKey("Unit")]
        public int? UnitId { get; set; }

        public int? HierarchyLevel { get; set; }

        public bool IsMigrated { get; set; }

        public DateTime? StartDate { get; set; }

        public DateTime? EndDate { get; set; }

        public string? Comment { get; set; }

        // Навигационные свойства
        public Project Project { get; set; }

        public Work ParentWork { get; set; }

        public Status Status { get; set; }

        public Unit Unit { get; set; }

        public ICollection<Work> SubWorks { get; set; } = new List<Work>();

        public ICollection<WorkMaterial> WorkMaterials { get; set; } = new List<WorkMaterial>();
    }
```
данные в базе данных
```
WorkId;StatusId;BOCount;Comment;ConsumptionCoefficient;ContractorComment;CostName;EndDate;HierarchyLevel;ISRComment;IsMigrated;NodeCode;NumberItem;ParentWorkId;ProjectId;StartDate;TotalCount;UnitId;UnitOfMeasure;MatEquipmCost;MatEquipmPrice;SmpPnpCost;SmpPnpPrice;TotalCost;TotalPrice
1;2;NULL;Импортировано автоматически;NULL;NULL;Затраты на строительство;NULL;1;NULL;0;6;1.1;NULL;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;16251230.90;0.00;14893287.17;0.00;31144518.07;0.00
2;2;NULL;Импортировано автоматически;NULL;NULL;СМР корпуса без отделки;NULL;2;NULL;0;6.2;1.1.1;1;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;16251230.90;0.00;14842708.53;0.00;31093939.43;0.00
3;2;NULL;Импортировано автоматически;NULL;NULL;Отделка, столярные работы, мебель и оборудование;NULL;2;NULL;0;6.3;1.1.2;1;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;50578.64;0.00;50578.64;0.00
4;2;NULL;Импортировано автоматически;NULL;NULL;Отделка нежилых помещений;NULL;3;NULL;0;6.3.1;1.1.2.1;3;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;50578.64;0.00;50578.64;0.00
5;2;NULL;Импортировано автоматически;NULL;NULL;СМР подземной части корпуса;NULL;3;NULL;0;6.2.1;1.1.1.1;2;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;143070.00;0.00;143070.00;0.00
6;2;NULL;Импортировано автоматически;NULL;NULL;СМР надземной части корпуса (без отделки);NULL;3;NULL;0;6.2.2;1.1.1.2;2;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;16251230.90;0.00;14699638.53;0.00;30950869.43;0.00
7;2;NULL;Импортировано автоматически;NULL;NULL;Внутренние стены и перегородки;NULL;4;NULL;0;6.2.2.4;1.1.1.2.1;6;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;13677772.58;0.00;13112400.03;0.00;26790172.61;0.00
8;2;NULL;Импортировано автоматически;NULL;NULL;Прочие затраты по СМР подземной части;NULL;4;NULL;0;6.2.1.8;1.1.1.1.1;5;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;143070.00;0.00;143070.00;0.00
9;2;NULL;Импортировано автоматически;NULL;NULL;Наружные стены;NULL;4;NULL;0;6.2.2.5;1.1.1.2.2;6;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;2573458.32;0.00;1587238.50;0.00;4160696.82;0.00
10;2;NULL;Импортировано автоматически;NULL;NULL;Отделка кладовых;NULL;4;NULL;0;6.3.1.3;1.1.2.1.1;4;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;50578.64;0.00;50578.64;0.00
11;2;NULL;Импортировано автоматически;NULL;NULL;Полы;NULL;5;NULL;0;6.3.1.3.1;1.1.2.1.1.1;10;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;50578.64;0.00;50578.64;0.00
12;2;NULL;Импортировано автоматически;NULL;NULL;Прочие работы;NULL;5;NULL;0;6.2.2.5.99;1.1.1.2.2.3;9;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;90281.75;0.00;45007.33;0.00;135289.08;0.00
13;2;NULL;Импортировано автоматически;NULL;NULL;Устройство наружных стен;NULL;5;NULL;0;6.2.2.5.1;1.1.1.2.2.1;9;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;1246445.85;0.00;1053298.68;0.00;2299744.53;0.00
14;2;NULL;Импортировано автоматически;NULL;NULL;Устройство перемычек и фахверков;NULL;5;NULL;0;6.2.2.5.2;1.1.1.2.2.2;9;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;1236730.72;0.00;488932.49;0.00;1725663.21;0.00
15;2;NULL;Импортировано автоматически;NULL;NULL;Устройство перемычек и фахверков;NULL;5;NULL;0;6.2.2.4.3;1.1.1.2.1.3;7;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;938526.98;0.00;334604.18;0.00;1273131.16;0.00
16;2;NULL;Импортировано автоматически;NULL;NULL;Устройство перегородок;NULL;5;NULL;0;6.2.2.4.2;1.1.1.2.1.2;7;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;3687706.14;0.00;5168554.05;0.00;8856260.19;0.00
17;2;NULL;Импортировано автоматически;NULL;NULL;Внутренние стены и перегородки подземной части;NULL;5;NULL;0;6.2.1.8.1;1.1.1.1.1.1;8;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;143070.00;0.00;143070.00;0.00
18;2;NULL;Импортировано автоматически;NULL;NULL;Устройство стен;NULL;5;NULL;0;6.2.2.4.1;1.1.1.2.1.1;7;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;9051539.46;0.00;7609241.80;0.00;16660781.26;0.00
19;2;NULL;Импортировано автоматически;1.00;С3;Кладка стен из блоков ячеистого бетона без устройства перемычек, включая армирование, устройство примыканий;NULL;6;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.1.2.1;1.1.1.2.1.1.1;18;1;2024-11-14 00:00:00.0000000;1193.75;NULL;м3;8846165.00;7410.40;7465712.50;6254.00;16311877.50;13664.40
20;2;NULL;Импортировано автоматически;NULL;NULL;Прочие работы;NULL;6;NULL;0;6.2.1.8.1.99;1.1.1.1.1.1.1;17;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;143070.00;0.00;143070.00;0.00
21;2;NULL;Импортировано автоматически;1.00;С2, подземная часть;Кладка стен из пазогребневых силикатных блоков без устройства перемычек, включая армирование, крепление к стенам, заделку примыканий, зачеканку швов;NULL;6;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.1.4.1;1.1.1.2.1.1.2;18;1;2024-11-14 00:00:00.0000000;7.80;NULL;м3;69799.08;8948.60;48781.20;6254.00;118580.28;15202.60
22;2;NULL;Импортировано автоматически;1.00;С2 пристройка;Кладка стен из пазогребневых силикатных блоков без устройства перемычек, включая армирование, крепление к стенам, заделку примыканий, зачеканку швов;NULL;6;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.1.4.1;1.1.1.2.1.1.3;18;1;2024-11-14 00:00:00.0000000;15.15;NULL;м3;135575.38;8948.87;94748.10;6254.00;230323.48;15202.87
23;2;NULL;Импортировано автоматически;NULL;NULL;Устройство перегородок из пазогребневых плит;NULL;6;NULL;0;6.2.2.4.2.2;1.1.1.2.1.2.2;16;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;3687706.14;0.00;4659232.05;0.00;8346938.19;0.00
24;2;NULL;Импортировано автоматически;NULL;NULL;Устройство перегородок из кирпича и блоков;NULL;6;NULL;0;6.2.2.4.2.1;1.1.1.2.1.2.1;16;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;509322.00;0.00;509322.00;0.00
25;2;NULL;Импортировано автоматически;1.00;подземная часть и пристройка;Устройство металлоконструкций фахверков, стоек, рам, балок, опорных конструкций и усилений с учетом крепления, огрунтовки и окрашивания;NULL;6;NULL;0;6.2.2.4.3.3.1;1.1.1.2.1.3.3;15;1;2024-11-14 00:00:00.0000000;1.66;NULL;т;356335.88;214660.17;140663.42;84737.00;496999.30;299397.17
26;2;NULL;Импортировано автоматически;1.00;подземная часть и пристройка;Устройство перемычек металлических с огрунтовкой и окраской;NULL;6;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.3.2.1;1.1.1.2.1.3.2;15;1;2024-11-14 00:00:00.0000000;0.20;NULL;т;84420.84;422104.20;9414.60;47073.00;93835.44;469177.20
27;2;NULL;Импортировано автоматически;1.00;NULL;Устройство перемычек металлических с огрунтовкой и окраской;NULL;6;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.3.2.1;1.1.1.2.1.3.1;15;1;2024-11-14 00:00:00.0000000;3.92;NULL;т;497770.26;126982.21;184526.16;47073.00;682296.42;174055.21
28;2;NULL;Импортировано автоматически;1.00;NULL;Устройство металлоконструкций фахверков, стоек, рам, балок, опорных конструкций и усилений с учетом крепления, огрунтовки и окрашивания;NULL;6;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.5.2.1.1;1.1.1.2.2.2.1;14;1;2024-11-14 00:00:00.0000000;5.77;NULL;т;1236730.72;214338.08;488932.49;84737.00;1725663.21;299075.08
29;2;NULL;Импортировано автоматически;1.00;С4;Кладка стен из блоков ячеистого бетона без устройства перемычек, включая армирование, устройство примыканий;NULL;6;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.5.1.1.1;1.1.1.2.2.1.2;13;1;2024-11-14 00:00:00.0000000;20.62;NULL;м3;151188.73;7332.14;128957.48;6254.00;280146.21;13586.14
30;2;NULL;Импортировано автоматически;1.00;NULL;Кладка стен из блоков ячеистого бетона без устройства перемычек, включая армирование, устройство примыканий;NULL;6;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.5.1.1.1;1.1.1.2.2.1.1;13;1;2024-11-14 00:00:00.0000000;147.80;NULL;м3;1095257.12;7410.40;924341.20;6254.00;2019598.32;13664.40
31;2;NULL;Импортировано автоматически;1.00;подземная часть и пристройка;Укладка теплоизоляционных материалов в деформационый шов;NULL;6;NULL;0;6.2.2.5.99.1.1;1.1.1.2.2.3.1;12;1;2024-11-14 00:00:00.0000000;4.60;NULL;м3;32137.85;6986.49;16021.80;3483.00;48159.65;10469.49
32;2;NULL;Импортировано автоматически;1.00;NULL;Укладка теплоизоляционных материалов в деформационый шов;NULL;6;NULL;0;6.2.2.5.99.1.1;1.1.1.2.2.3.2;12;1;2024-11-14 00:00:00.0000000;8.32;NULL;м3;58143.90;6986.77;28985.53;3483.00;87129.43;10469.77
33;2;NULL;Импортировано автоматически;NULL;NULL;Устройство покрытия полов;NULL;6;NULL;0;6.3.1.3.1.2;1.1.2.1.1.1.1;11;1;2024-11-14 00:00:00.0000000;NULL;NULL;NULL;0.00;0.00;50578.64;0.00;50578.64;0.00
34;2;NULL;Импортировано автоматически;1.00;кладовые и пристройка;Устройство монолитного железобетонного порога;NULL;7;NULL;0;6.3.1.3.1.2.2.1;1.1.2.1.1.1.1.1;33;1;2024-11-14 00:00:00.0000000;1.81;NULL;м3;0.00;0.00;50578.64;27944.00;50578.64;27944.00
35;2;NULL;Импортировано автоматически;1.00;С1, С23 пристройка;Устройство перегородок из ПГП без устройства перемычек, включая проклейку углов примыкания армирующей лентой, толщ. до 115 мм;NULL;7;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.2.2.1.1;1.1.1.2.1.2.2.4;23;1;2024-11-14 00:00:00.0000000;234.99;NULL;м2;229136.40;975.09;312771.69;1331.00;541908.09;2306.09
36;2;NULL;Импортировано автоматически;1.00;NULL;Монтаж, демонтаж, аренда строительных лесов;NULL;7;NULL;0;6.2.2.4.2.1.7.1;1.1.1.2.1.2.1.1;24;1;2024-11-14 00:00:00.0000000;1697.74;NULL;м2;0.00;0.00;509322.00;300.00;509322.00;300.00
37;2;NULL;Импортировано автоматически;1.00;NULL;Устройство перегородок из ПГП без устройства перемычек, включая проклейку углов примыкания армирующей лентой, толщ. до 115 мм;NULL;7;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.2.2.1.1;1.1.1.2.1.2.2.1;23;1;2024-11-14 00:00:00.0000000;59.20;NULL;м2;57725.33;975.09;78795.20;1331.00;136520.53;2306.09
38;2;NULL;Импортировано автоматически;1.00;NULL;Устройство перегородок из ПГП без устройства перемычек, включая проклейку углов примыкания армирующей лентой, толщ. до 115 мм;NULL;7;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.2.2.1.1;1.1.1.2.1.2.2.2;23;1;2024-11-14 00:00:00.0000000;2525.59;NULL;м2;2737032.39;1083.72;3361560.29;1331.00;6098592.68;2414.72
39;2;NULL;Импортировано автоматически;1.00;С1, С23 подземная часть;Устройство перегородок из ПГП без устройства перемычек, включая проклейку углов примыкания армирующей лентой, толщ. до 115 мм;NULL;7;Выгружается из БО по объектам BIM-КЦ;0;6.2.2.4.2.2.1.1;1.1.1.2.1.2.2.3;23;1;2024-11-14 00:00:00.0000000;680.77;NULL;м2;663812.02;975.09;906104.87;1331.00;1569916.89;2306.09
40;2;NULL;Импортировано автоматически;1.00;применительно для  затарки всех материалов на всех этажах до рабочих мест;Работы по затарке материалов от места складирования до рабочих мест в техподполье;NULL;7;NULL;0;6.2.1.8.1.99.2.1;1.1.1.1.1.1.1.1;20;1;2024-11-14 00:00:00.0000000;190.00;NULL;т;0.00;0.00;143070.00;753.00;143070.00;753.00
```
вот пример контроллеров которые я использую
```
using AutoMapper;
using BuildingFlow.Data.Contract;
using BuildingFlow.Data.Entities;
using BuildingFlow.Services.Models.ViewModels;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

namespace BuildingFlow.Web.Controllers
{
  public class ClientsController : Controller
  {
    private readonly IUnitOfWork _unitOfWork;
    private readonly IMapper _mapper;
    private readonly IRepository<Client> _clientRepository;

    public ClientsController(IUnitOfWork unitOfWork, IMapper mapper)
    {
      _unitOfWork = unitOfWork;
      _clientRepository = _unitOfWork.GetRepository<Client>();
      _mapper = mapper;
    }

    // GET: Clients
    public async Task<IActionResult> Index()
    {
      //var clientRepository = _unitOfWork.GetRepository<Client>();
      var clients = await _clientRepository.AsReadOnlyQueryable().ToListAsync();
      var clientViewModel = _mapper.Map<IEnumerable<ClientViewModel>>(clients);
      return View(clientViewModel);
    }

    // GET: Clients/Details/5
    public async Task<IActionResult> Details(int id)
    {
      var client = await _clientRepository.AsReadOnlyQueryable().FirstOrDefaultAsync(c=>c.Id==id);
      if (client == null)
      {
        return NotFound();
      }

      var clientViewModel = _mapper.Map<ClientViewModel>(client);
      return View(clientViewModel);
    }

    // GET: Clients/Create
    public IActionResult Create()
    {
      return View();
    }

    // POST: Clients/Create
    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Create(ClientViewModel clientViewModel)
    {
      if (ModelState.IsValid)
      {
        var client = _mapper.Map<Client>(clientViewModel);
        _clientRepository.Create(client);
        await _unitOfWork.SaveChangesAsync();
        TempData["SuccessMessage"] = "Клиент успешно создан!";
        return RedirectToAction(nameof(Index));
      }
      return View(clientViewModel);
    }

    // GET: Clients/Edit/5
    public async Task<IActionResult> Edit(int id)
    {
      var client = await _clientRepository.AsReadOnlyQueryable().FirstOrDefaultAsync(c => c.Id == id);
      if (client == null)
      {
        return NotFound();
      }

      var clientViewModel = _mapper.Map<ClientViewModel>(client);
      return View(clientViewModel);
    }

    // POST: Clients/Edit/5
    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Edit(int id, ClientViewModel clientViewModel)
    {
      if (id != clientViewModel.Id)
      {
        return BadRequest();
      }

      if (ModelState.IsValid)
      {
        var client = await _clientRepository.AsQueryable().FirstOrDefaultAsync(c => c.Id == id);
        if (client == null)
        {
          return NotFound();
        }

        _mapper.Map(clientViewModel, client);

        await _unitOfWork.SaveChangesAsync();
        TempData["SuccessMessage"] = "Клиент успешно обновлён!";
        return RedirectToAction(nameof(Index));
      }
      return View(clientViewModel);
    }

    //GET: Clients/Delete/5
    public async Task<IActionResult> Delete(int id)
    {
      var client = await _clientRepository.AsReadOnlyQueryable().FirstOrDefaultAsync(c => c.Id == id);
      if (client == null)
      {
        return NotFound();
      }

      var clientViewModel = _mapper.Map<ClientViewModel>(client);
      return View(clientViewModel);
    }

    // POST: Clients/Delete/5
    [HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> DeleteConfirmed(int id)
    {
      var client = await _clientRepository.AsReadOnlyQueryable().FirstOrDefaultAsync(c => c.Id == id);
      if (client != null)
        _clientRepository.Delete(client);
      await _unitOfWork.SaveChangesAsync();
      TempData["SuccessMessage"] = "Клиент успешно удалён!";
      return RedirectToAction(nameof(Index));
    }
  }
}
```
напиши новый код контроллера и представление для отображения иерархии работ
в представлении нужны поля NumberItem, NodeCode, CostName