ASP. NET Базовое веб-приложение - отображение данных базы данных C# - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь отобразить данные из SQL базы данных сервера. Я боролся с этим целый день и до сих пор не могу найти ни одного рабочего решения или учебника.

Что я хочу сделать - создать простой «браузер базы данных». Лучшее, что до сих пор работало, это учебник https://www.c-sharpcorner.com/article/entity-framework-database-first-in-asp-net-core2/

Но у меня есть только одна таблица для отображения, и я не знаю, как написать эту часть кода:

 public IActionResult Index()  
 {  
     var _emplst = _dbContext.tblEmployees
                             .Join(_dbContext.tblSkills, e => e.SkillID, s => s.SkillID,  
                                   (e, s) => new EmployeeViewModel  
                                                 { EmployeeID = e.EmployeeID, EmployeeName = e.EmployeeName,  
                                                   PhoneNumber = e.PhoneNumber, Skill = s.Title,  
                                                   YearsExperience = e.YearsExperience }).ToList();  

     IList<EmployeeViewModel> emplst  = _emplst;  
     return View(emplst);  
}  

только для одной таблицы (без объединения). Все, что я пробую, заканчивается ошибкой, которую я не могу преобразовать tblEmployees в EmployeeViewModel.

Может ли кто-нибудь мне помочь? Или предложить другое решение, которое может работать? Я действительно просто хочу перетащить данные из таблицы и отобразить их на веб-странице.

РЕДАКТИРОВАТЬ: ComponentContext.cs:

public class ComponentsContext:DbContext
    {
        public ComponentsContext(DbContextOptions<ComponentsContext> options) : base(options)
        {

        }

        public DbSet<tblComponents> tblComponent { get; set; }

    }
}

1 Ответ

1 голос
/ 15 апреля 2020

Ваш _emplst список имеет тип (класс), отличный от типа (класса) EmployeeViewModel.

Так что вам нужно go просмотреть список _emplst и передать необходимые значения в EmployeeViewModel.

Это может быть что-то вроде этого:

     public IActionResult Index()  
 {  
            var _emplst = _dbContext.tblEmployees.  
                            Join(_dbContext.tblSkills, e => e.SkillID, s => s.SkillID,  
                            (e, s) => new EmployeeViewModel  
                            { EmployeeID = e.EmployeeID, EmployeeName = e.EmployeeName,  
                                PhoneNumber = e.PhoneNumber, Skill = s.Title,  
                                YearsExperience = e.YearsExperience }).ToList();  
            var emplst  = _emplst.Select( e=> new EmployeeViewModel {
               .. i dont known the properties ..
               A = e.A,
               B = e.B,
               ... .. 
            }).ToList();  
            return View(emplst);  
  }

Как ответ на ваш комментарий ниже к tlbComponent, попробуйте это:

var _cmplist = _dbContext.tblComponent.ToList().Select(e => new ComponentsViewModel { ID = e.ID, Name = e.Name, } ).ToList();
IList<ComponentsViewModel> cmplist = _cmplist;
return View(cmplist);

У меня есть изменение _dbContext.tblComponent.Select(... на _dbContext.tblComponent.ToList().Select(....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...