Контроллер ASP.NET MVC объединяет две таблицы: «Анонимный тип не может иметь несколько свойств с одним и тем же именем» - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть следующий код для объединения двух таблиц в контроллере ASP.NET MVC, но я также хочу отобразить имя руководителя сотрудника из одной и той же таблицы и того же файла.

Но я получаю ошибку:

У анонимного типа не может быть нескольких свойств с одинаковым именем

Вот мой код

public IHttpActionResult GetEmployees()
{
    var query = (from n in db.Employees
                 join c in db.tblCities on n.ProjectID equals c.CityID
                 into nc
                 from c in nc.DefaultIfEmpty()

                 join manager in db.Employees on n.ManagerName equals manager.Name
                 into pc
                 from managerin pc.DefaultIfEmpty()

                 select new
                         {
                             n.Name,
                             manager.Name,
                             n.Email,
                             c.CityName
                         });

    var employees = query.ToList();

    return Ok(employees);
}

Какой обходной путь для достижения моей цели?

1 Ответ

2 голосов
/ 02 ноября 2019

Вам нужно дать свойствам (или, по крайней мере, конфликтующим) реальные имена, чтобы вы знали, что к чему. Какое имя будет именем, если нет? Например:

select new
{
  n.Name
  ManagerName = manager.Name,
  n.Email,
  c.CityName
}

Также часто лучше использовать фактические типы вместо анонимных, чтобы обеспечить правильную защиту типов через приложение, особенно когда эта информация передается представлениям и т. Д.

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