很抱歉,如果该主题重复,但我之前搜索过,但仍然没有解决方法。
如果我在SQL数据库中有一个存储过程>例如:Select语句的存储过程,我想从LINQ-Code First中调用它?
public class MyContext :DbContext
{
public MyContext()
: base("name=MyConnection")
{
}
public DbSet<Employee> Employee { get; set; }
public DbSet<Department> Department{ get; set; }
}
//班级员工
public class Employee{
public int ID {get; set;}
public string Fname {get;set;}
public string Lname {get;set;}
public Departmetn DepartmentID {get;set;}
}
//课堂部
public class Department{
public int ID {get;set;}
public string Name { get;set;}
}
//步骤
Select Fname + ' ' + Lname as 'FullName' from Employee,Department
Where Employee.DepartmentID = Department.ID
现在我该如何首先从LINQ代码中调用此过程 我尝试这样做:
MyContext oContext = new MyContext();
var Employee = oContext.Employee.SqlQuery("ProcedureName").ToList();
但是有一个错误,即Employee不存在FullName列,如果我没有返回ID,也有错误
**The data reader is incompatible with the specified 'Employee'. A member of the type, 'EmployeeID', does not have a corresponding column in the data reader with the same name.**
我不想阅读所有列,只是我有一个实体Employee&department,我有一个带有不同名称列的过程,或者如果我有一个复杂的过程,该过程具有从两个以上的表中进行选择的语句,我可以这样做吗?
感谢所有可以帮助我的人。