Я использую LINQ Self Join Query для отображения данных в таблице .my sql. В таблице sql содержатся некоторые данные о сотрудниках. Мне нужно показать данные о сотрудниках с их именем менеджера , так как это ManagerID в таблица, какSelf join in LINQ query and return View
EmpID Name ManagerID Designation Phone Address 1 Mike 3 Developer 123456 Texas 2 David 3 RM 123456 Delhi 3 Roger NULL GM 123456 Dallas 4 Marry 2 Developer 123456 NY 5 Joseph 2 Developer 123456 Singapore 7 Ben 2 Developer 123456 Mumbai 8 Steven 3 TL 123456 Banglore
мне нужно изменить его имя
мой код в действии контроллера
var emp = from m in t.Employees
join e1 in t.Employees on m.ManagerID equals e1.EmployeeID
select new { Id = m.EmployeeID ,
Name = m.Name,
Manager = e1.Name ,
Designation = m.Designation,
Phone =m.Phone ,address = m.Address };
return View(emp.Tolist());
и видом
@model IEnumerable <mvc4application.models.employee>
, но я получаю сообщение об ошибке выполнения
Модель элемент передается в словарь типа System.Data.Objects.ObjectQuery
1[<>f__AnonymousType1
6 [System.Int32, System.String, системы .String, System.String, System.Nullable1[System.Int32],System.String]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1 [Mvc4application.Models.Employee]».] System.Web.Mvc.ViewDataDictionary`1.SetModel (значение объекта) +405487
Off Course Я понимаю это, потому что мой взгляд использует Mvc4application.Models.Employee type
.
Поскольку я не могу отнести его к типу модели.
Можно ли использовать SQL-представление в качестве модели в MVC, чтобы мы могли вступать в SQL?
Хороший ответ, но почему 'for' цикла, а не' foreach' цикл? –
Потому что я просто ненавижу это. Есть gazillion сообщений в блогах, в которых показано, как использовать циклы foreach в представлениях Razor и gazillion вопросов о StackOverflow о том, почему привязка модели не работает для коллекций. Просто, когда вы используете строго типизированные помощники редактора с циклом foreach, они не будут генерировать собственные имена для полей ввода. В этом случае это не имеет значения, потому что нет никаких полей ввода, но я просто не хочу научить людей использовать эти foreach, потому что я просто чувствую, что следующий вопрос будет, почему я не могу отправить данные обратно мое действие контроллера. –
Поэтому я использовал 'for' вместо' foreach' в ожидании возможных следующих вопросов от OP :-) Как только он заменяет Html.DisplayFor на Html.EditorFor и помещает '
Смежные вопросы