错误信息是:
无效的列名称'EmployeeId' 列名称“EmployeeId”无效 列名称“城市”无效。
{
EmployeeContext employeeContext = new EmployeeContext();
Employee employee = employeeContext.Employees.Single(emp => emp.EmployeeId == id); //This line is causing the error
}
但是我有完全相同的数据库表和所有匹配的列,为什么它说我有无效的列?我哪里做错了?我使用了codeFirst方法,实际上表中有四列是EmployeeID,Name,Gender,City,为什么我在Name和Gender中没有错误,只是在EmployeeID和City中有错误?和EmployeeID中的错误出现两次?
详细代码
员工类:
namespace MVCDemo.Models
{
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
}
}
EmployeeContext:
namespace MVCDemo.Models
{
[Table("tblEmployee")]
public class EmployeeContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
}
}
答案 0 :(得分:2)
为什么要使用[Table(“tblEmployee”)]装饰EmployeeContext?你应该用Employee类来做,对吗?
[Table("tblEmployee")]
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
}
答案 1 :(得分:0)
我的想法是:
EmployeeContext employeeContext = new EmployeeContext();
该行正在针对本地数据库服务器创建上下文。请确保您提供正确的连接字符串作为参数:
EmployeeContext employeeContext = new EmployeeContext(connection-string);
根据您正在使用的项目,应从web.config或app.config中获取连接字符串。
答案 2 :(得分:0)
您提供的详细信息不足以理解您的问题。首先确保您已正确连接到数据库。其次,如果City是您实体类中的导航属性,那么您可能会遗漏&#34; 包含&#34;方法