我的数据库中有一个表tbl_Employee,我希望使用Entity Framework在视图中显示。
员工控制器类
namespace MVCDemo.Controllers
{
public class EmployeeController : Controller
{
public ActionResult Index()
{
EmployeeContext emp = new EmployeeContext();
List<Employee> empList = emp.Employees.ToList();
return View();
}
}
}
抛出错误说EmployeeContext不包含&#34; Employees&#34;的任何定义。但我在Emlpoyee Context类中创建了一个DbSet属性
这是代码
namespace MVCDemo.Models
{
public class EmployeeContext:DbContext
{
public DbSet<tbl_Employee> Employees { get; set; }
}
}
我认为它可能与Employee模型类中的[Table]
属性有关:
namespace MVCDemo.Models
{
[Table("tbl_Employee")]
public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
public int Salary { get; set; }
}
}
这是我在编译时遇到的错误
错误1&#39; MVCDemo.EmployeeContext&#39;不包含&#39;员工的定义&#39;没有延伸方法&#39;员工&#39;接受类型&#39; MVCDemo.EmployeeContext&#39;的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)
答案 0 :(得分:1)
你必须放置:DbSet。
namespace MVCDemo.Models
{
public class EmployeeContext:DbContext
{
public DbSet<Employee> employees { get; set; }
}
}
在此示例中,您的实体是Employees,因此您必须将DbSet声明为DbSet<Employees>
答案 1 :(得分:0)
您必须提供强类型的类名:
public DbSet<Employee> Employees { get; set; }
Table
将指定数据库中表的名称。 more info
您还可以使用流畅的API:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>().ToTable("tbl_Employee");
}