我有以下功能 -如何將var轉換爲DataTable?
public static DataTable getDetails(PersonContext context)
{
DataTable dt = new DataTable();
IQueryable<Person> query = from p in context.Persons.Include("Employee")
.Include("Manager")
.Include("Activity")
where p.Activity.IsActive
select p;
var sorted = query.ToArray().OrderByDescending(p=>p.Activity.DateCreated);
dt = (DataTable)sorted;
return dt;
}
我無法測試它。 我的問題是 - 這個功能會起作用嗎?如果我不應該做什麼改變?
更新
public static DataTable getDetails(PersonContext context)
{
DataTable dt = new DataTable("Details");
dt.Columns.Add("Name");
dt.Columns.Add("Department");
dt.Columns.Add("IsManager");
IQueryable<Person> query = from p in context.Persons.Include("Employee")
.Include("Manager")
.Include("Activity")
where p.Activity.IsActive
select p;
var sorted = query.ToArray().OrderByDescending(p=>p.Activity.DateCreated);
foreach(Person p in sorted)
{
dt.Rows.Add(p.Name, p.Employee.Department,p.Manager.IsManager);
}
return dt;
}
找到更多的信息爲什麼你不能測試它? –
就這樣,這將不起作用,因爲'sorted'將會正確輸入'IQueryable'。我相信你應該在消費方面更好地排序結果,而不是在數據表本身內。排序是表示層的功能,而不是數據層 –
檢查這些解決方案[這裏](http://www.dreamincode.net/forums/topic/85368-c%23-convert-object-array-into-datatable/)。 希望這會有所幫助。 –