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) { /* ... */}