Entity Framework 4 ошибка - PullRequest
       1

Entity Framework 4 ошибка

1 голос
/ 22 марта 2011

Я создал приложение MVC3, используя метод Entity Framework Code First.Моя модель очень проста:

public class Employee
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int YearsAtCompany { get; set; }
}

, класс контекста -

public class EmployeeDB : DbContext
    {
        public DbSet<Employee> Employees { get; set; }
    }

, а контроллер выглядит так:

EmployeeDB context = new EmployeeDB();

        public ActionResult Index()
        {
            return View(context.Employees);
        }      
    }

Я создал EmployeesDb.mdf иТаблица сотрудников.

, но я получаю эту ошибку:

The model item passed into the dictionary is of type 'System.Data.Entity.DbSet`1[DFEmployees.Models.Employee]', but this dictionary requires a model item of type 'DFEmployees.Models.Employee'. 

[Обновлено]

@model DFEmployees.Models.Employee

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

Пожалуйста, предложите решение.

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Похоже, ваше представление ожидает одного сотрудника, и вы пытаетесь заполнить представление набором DBSet сотрудников.

Чтобы решить эту проблему, вы можете установить @model представления вIEnumerable of people, или отправьте только одного сотрудника в представление, в зависимости от того, что вы показываете в представлении.

EDIT : я думаю, что эта проблема не связана с предыдущей.Проверьте эту ссылку, надеюсь, она вам поможет: ССЫЛКА

0 голосов
/ 22 марта 2011

Ваше действие контроллера возвращает список сотрудников, поэтому адаптируйте вашу модель соответственно в представлении:

@model IEnumerable<DFEmployees.Models.Employee>

Или, если вы хотите использовать одного сотрудника, убедитесь, что вы передаете одного сотрудника в представление:

public ActionResult Index()
{
    return View(context.Employees.FirstOrDefault());
}

и тогда вы можете иметь:

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