C# 当返回类型为IEnumerable时,如何获取var输出数据

C# 当返回类型为IEnumerable时,如何获取var输出数据,c#,sql-server,C#,Sql Server,我需要从var result=new获取数据,而不是从IEnumerable获取数据。请帮助我,如果他们有任何替代解决方案,请让我知道 public IEnumerable<Employee_Join> GetEmployees(int paginate) { int FilterdCount = 0; using (SqlConnection con = Db.Dbcontect) { var employee = new List

我需要从
var result=new
获取数据,而不是从
IEnumerable
获取数据。请帮助我,如果他们有任何替代解决方案,请让我知道

public IEnumerable<Employee_Join> GetEmployees(int paginate)    
{
    int FilterdCount = 0;

    using (SqlConnection con = Db.Dbcontect)
    {
        var employee = new List<Employee_Join>();

        con.Open();

        SqlCommand cmd = new SqlCommand("SP_GetEmployees_By_Pagination", con);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.AddWithValue("@Pagination", paginate);
        cmd.Parameters.AddWithValue("@Total", 5);

        SqlDataReader rdr = cmd.ExecuteReader();

        if (rdr.HasRows == true)
        {
            while (rdr.Read())
            {
                Employee_Join emp = new Employee_Join();

                if (!Convert.IsDBNull(rdr["EmployeeId"]))
                {
                    emp.Emp_Id = Convert.ToInt32(rdr["EmployeeId"]);
                }

                emp.EmpName = rdr["EmpName"].ToString();
                emp.Email = rdr["Email"].ToString();
                emp.Cnt_Name = rdr["CountryName"].ToString();

                employee.Add(emp);
            }
        }

        var result = new
                    {
                        iTotalRecords = GetTotalEmployeeCount(),
                        iTotalDisplayRecords = FilterdCount,
                        aaData = employee
                    };

        return employee;
    }
}
public IEnumerable GetEmployees(int-paginate)
{
int FilterdCount=0;
使用(SqlConnection con=Db.Dbcontect)
{
var employee=新列表();
con.Open();
SqlCommand cmd=新的SqlCommand(“SP_GetEmployees_By_Pagination”,con);
cmd.CommandType=CommandType.storedProcess;
cmd.Parameters.AddWithValue(“@Pagination”,paginate);
cmd.Parameters.AddWithValue(“@Total”,5);
SqlDataReader rdr=cmd.ExecuteReader();
if(rdr.HasRows==true)
{
while(rdr.Read())
{
员工加入emp=新员工加入();
如果(!Convert.IsDBNull(rdr[“EmployeeId”]))
{
emp.emp_Id=Convert.ToInt32(rdr[“EmployeeId]”);
}
emp.EmpName=rdr[“EmpName”].ToString();
emp.Email=rdr[“Email”].ToString();
emp.Cnt_Name=rdr[“CountryName”].ToString();
employee.Add(emp);
}
}
var结果=新
{
iTotalRecords=GetTotalEmployeeCount(),
iTotalDisplayRecords=FilterdCount,
aa数据=员工
};
返回员工;
}
}

我需要
var result=new
output not employee

如果你想返回
result
,你需要从中创建一个ViewModel/DTO类,因为C#不允许你从方法中返回匿名对象(从技术上讲你可以,但这会增加很多额外的工作,所以请不要这样做)

更改代码,使其不会创建异常类型,而是创建新类:

var result = new MyCustomDTO
{
    iTotalRecords = GetTotalEmployeeCount(),
    iTotalDisplayRecords = FilterdCount,
    aaData = employee
};

return employee;
最后更改为函数的返回类型以反映正确的类型

public MyCustomDTO GetEmployees(int paginate)   { /* ... */}

前两个
类型很可能是
int
,最后一个肯定是
List
public MyCustomDTO GetEmployees(int paginate)   { /* ... */}