我無法使用ForEach()
和linq來計算我的模型中的3個字段。查詢返回特定問題的「活動」。其中一個領域是「TimeSpent」,這是一個long
。基本上是以毫秒爲單位花費在這個項目上的時間。我試圖根據每個活動的「TimeSpent」字段顯示Days,Hours和Minutes。這裏的型號:Linq ForEach()不填充字段
public class ActivityGridModel
{
public DateTime ActivityDate { get; set; }
public string ActivityType { get; set; }
public string Notes { get; set; }
public string EnteredBy { get; set; }
public long TimeSpent { get; set; }
public int Days { get; set; }
public int Hours { get; set; }
public int Minutes { get; set; }
}
這是我建立查詢:
var activities = from a in Session.Context.Activities
join at in Session.Context.ActivityTypes
on a.ActivityTypeID equals at.ActivityTypeID
join u in Session.Context.Users
on a.CreatedByUserID equals u.UserID
where a.IssueID == issueId
select new ActivityGridModel()
{
ActivityDate = a.ActivityDate,
ActivityType = at.ActivityType1,
Notes = a.Notes,
EnteredBy = u.FirstName + " " + u.LastName,
TimeSpent = a.TimeSpent
};
這裏的地方我嘗試填充天數,小時,和我的模型紀要:
activities.ToList().ForEach(a =>
{
TimeSpan timeSpent = new TimeSpan(a.TimeSpent);
a.Days = timeSpent.Days;
a.Hours = timeSpent.Hours;
a.Minutes = timeSpent.Minutes;
});
return activities.ToList();
我得到了結果中的所有其他字段,但Days,Hours和Minutes都是0.我不太確定我做錯了什麼。任何幫助表示讚賞。
雖然@ Selman22答案的作品是正確的,我決定使用這個解決方案,因爲brz是正確的,這些領域應該內部計算。 – Robert 2014-09-11 14:11:12