首先从LINQ代码调用存储过程

时间:2019-03-10 14:14:30

标签: entity-framework stored-procedures ef-code-first

很抱歉,如果该主题重复,但我之前搜索过,但仍然没有解决方法。

如果我在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,我有一个带有不同名称列的过程,或者如果我有一个复杂的过程,该过程具有从两个以上的表中进行选择的语句,我可以这样做吗?

感谢所有可以帮助我的人。

0 个答案:

没有答案