EF Code First调用具有复杂返回类型的存储过程

时间:2015-11-30 14:07:46

标签: c# sql-server entity-framework ef-code-first code-first

我有一个返回员工列表和单行部门的SP,应首先从EF代码中使用。

我有以下需要填写的对象,

public class EmployeeDetail
{
public IList<Employee> employeeslist { get;set; }
public int DeptID { get;set; }
public string DepartmentName { get;set; }
public int DeptStatusID { get;set; }
public decimal Expense  { get;set; }
}

public partial class DBModel : DbContext
 {
    public ObjectResult<EmployeeDetail> PaymentBatchDetailsGet(int deptid)
      {
       return ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<EmployeeDetail>
                        ("GetEmployees @p0", deptid);
      }
 }

SP非常简单,下面列出了2个简单查询,

select * from Employee where DepartmentID = @deptid
select DepartmentName,DeptStatusID,Expense 
FROM Department where DepartmentID = @deptid

除了employeeslist之外,EmployeeDetail类中的所有属性都已填充。你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

是什么让你认为这会起作用?据我了解,{{1}}方法只会使用基本类型(数字,字符串等)填充属性。见https://msdn.microsoft.com/en-us/library/ee358758(v=vs.110).aspx

另外,我不确定为什么你认为在两个记录集中返回结果时它会起作用。

我很乐意认为这种事情可行,但我认为如果有的话会令人惊讶。

我认为您需要将您的SP分为两部分,一部分获取顶级信息,另一部分获取员工。