Использование бизнес-объекта как модели не работает? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть проблема, когда я добавляю liabray класса в свой проект MVC как бизнес-объект с именем BusinessLayer, имеющий классы Employee и EmployeeBusinessLayer.Нажав на представление add в разделе index моего домашнего контроллера, я получу Employee (BusinessLayer) в качестве класса модели.Но на самом деле Employee (BusinessLayer) там не появляется?

Я хотел использовать businessobject в качестве модели в своем проекте MVC.Я создал имя ClassLiabrary BusinessLayer с двумя классами с именами Employee и EmployeeBusinessLayer.Класс EmployeeBusinessLayer имеет свойство, которое возвращает список сотрудников.После этого я создал объект EmployeeBusinessLayer в своем действии index моего HomeController.Объект возвращает список сотрудников в представление.Затем я щелкнул правой кнопкой мыши в разделе индекса, чтобы добавить представление.Текстовое поле с именем представления уже содержит текст «Индекс», и я выбрал шаблон в качестве списка.Но в текстовом поле Model Class есть только RouteConfig (UsingBusinessObjectAsModel), и я хочу, чтобы это было Employee (BusinessLayer)?

Namespace UsingBusinessObjectAsModel.Controllers
{
    public class HomeController: Controller
    {
         // GET: Home
         public ActionResult Index()
         {
             EmployeeBusinessLayer employeeBusinessLayer = new 
             EmployeeBusinessLayer();
             List<Employee> employees = 
             employeeBusinessLayer.Employees.ToList();
             return View (employees);
         }
    }
}

Вот мой BusinessLayer:

namespace BusinessLayer
{
    public class EmployeeBusinessLayer
    {
        public IEnumerable<Employee> Employees
        {
            get
            {
                string connectionString = 
              ConfigurationManager.ConnectionStrings["Test"].ConnectionString;
              List<Employee> employees = new List<Employee>();

              using (SqlConnection con = new SqlConnection(connectionString))
                {
                    SqlCommand cmd = new SqlCommand("spGetAllEmployees", con);
                    con.Open();
                    SqlDataReader rdr = cmd.ExecuteReader();
                    while (rdr.Read())
                    {
                        Employee employee = new Employee();
                        employee.Id = Convert.ToInt32(rdr["EmployeeId"]);
                        employee.Name = rdr["Name"].ToString();
                        employee.Gender = rdr["Gender"].ToString();
                        employee.City = rdr["City"].ToString();
                        employees.Add(employee);

                    }

                }
                return employees;

            }

        }
    }
}

Iожидайте, что когда я щелкнул правой кнопкой мыши в действии индекса, чтобы добавить представление, и имя представления и шаблон были выбраны, у класса модели должна быть опция для Employee (BusinessLayer), но у него есть только RouteConfig (UsingBusinessObjectAsModel).

1 Ответ

0 голосов
/ 15 февраля 2019

Вы перестроили все проекты?Если бизнес-проект не был собран в dll, классы не отображаются в списке моделей.

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