首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架4错误

实体框架4错误
EN

Stack Overflow用户
提问于 2011-03-22 23:17:49
回答 2查看 1.4K关注 0票数 1

我已经使用实体框架代码优先方法创建了MVC3应用程序。我的模型非常简单:

代码语言:javascript
复制
public class Employee
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int YearsAtCompany { get; set; }
}

context类是

代码语言:javascript
复制
public class EmployeeDB : DbContext
    {
        public DbSet<Employee> Employees { get; set; }
    }

控制器看起来像这样:

代码语言:javascript
复制
EmployeeDB context = new EmployeeDB();

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

我已经创建了EmployeesDb.mdf和Employee表。

但是我得到了这个错误:

代码语言:javascript
复制
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'. 

已更新

代码语言:javascript
复制
@model DFEmployees.Models.Employee

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

请建议解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-22 23:26:36

看起来您的视图正在等待单个employee,并且您正在尝试使用employees的DBSet填充视图。

要解决这个问题,您可以将视图的@ IEnumerable设置为employees的模型,或者仅向视图发送一个employee,这取决于您在视图中显示的内容。

编辑:我认为这个问题与前一个问题无关。检查这个链接,我希望它能帮助你:LINK

票数 1
EN

Stack Overflow用户

发布于 2011-03-22 23:25:12

您的控制器操作返回一个员工列表,因此在视图中分别调整您的模型:

代码语言:javascript
复制
@model IEnumerable<DFEmployees.Models.Employee>

或者,如果您想使用单个员工,请确保将单个员工传递给视图:

代码语言:javascript
复制
public ActionResult Index()
{
    return View(context.Employees.FirstOrDefault());
}

然后你就可以拥有:

代码语言:javascript
复制
@model DFEmployees.Models.Employee
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5393447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档