2012-08-10 105 views
0

我想改變日期到列表中的所有鍛鍊,其他屬性工作正常,只有當我更改日期我得到問題。我嘗試了不同的故障排除,但都沒有奏效。我嘗試使用updatedWorkout.Date作爲workoutStart =超出範圍。如果我使用old.Date,那麼,如何在7天內添加新日期?更改日期到列表中的所有對象,並更新

也許有更好的方法來做到這一點?

這裏是我的方法:

private int UpdateForAllWorkouts(IWorkoutCommand updatedWorkout) 
    { 
     try 
     { // get schedule 
      var schedule = _scheduleRepository.GetIncludeWorkouts(updatedWorkout.ScheduleId); 
      // get workouts within the schedule by schedule id 
      var workout = schedule.Workouts.FirstOrDefault(w => w.Id == updatedWorkout.Id); 

      for (var workoutStart = workout.Date; workoutStart <= schedule.ToDate; workoutStart = workoutStart.AddDays(7)) 
      { 
       // get specdfic workout by workout id and start time 
       var old = schedule.Workouts.Single(w => w.Date == workoutStart && w.StartTime == workout.StartTime); 

       var tmp = new Model.Workout 
           { 
            Id = old.Id, 
            CourseId = updatedWorkout.CourseId, 
            InstructorId = updatedWorkout.InstructorId, 
            Date = //<---problem 
            StartTime = updatedWorkout.StartTime, 
            EndTime = updatedWorkout.EndTime, 
            ScheduleId = updatedWorkout.ScheduleId, 
            WeekOffSet = updatedWorkout.WeekOffSet.Days 
           }; 
      } 

      return updatedWorkout.Id; 
     } 
     catch (Exception ex) 
     { 
      throw new Exception(""); 
     } 
    } 

THX的幫助!

+0

設置「日期」字段時會出現什麼問題? – horgh 2012-08-10 01:08:18

+0

有問題的存儲庫是什麼?它是否瞭解身體鍛鍊與Id = old.Id應更新提供的值?因爲我看到你創建新的鍛鍊,而不是更新舊的......這是EntityFramework或L2S(沒有在標籤中指定)? – horgh 2012-08-10 01:11:32

+0

當我通過workoutstart = updatedWorkout.Date設置日期時,我得到一個輸出或範圍。 – n3tx 2012-08-10 07:02:55

回答

0

我想你可以使用一個循環爲7

這樣的:

var workoutStart = workout.Date; 
while(true){ 

    if(workoutStart <= schedule.ToDate){ 
    // Do something 
    }else{ 
     break; 
    } 

    workoutStart = workoutStart.AddDays(7); 
} 
+0

所以你的意思是我必須做另一個循環?在第一個循環中沒有其他方式嗎? – n3tx 2012-08-10 07:09:36

+0

我試過這個解決方案,但我在哪裏可以得到新的日期? – n3tx 2012-08-10 11:29:58

0

請考慮來檢查我們的DateTime properties.Their值的值可能會低於您的SQL服務器允許日期時間字段。

  • 在分配「tmp」對象之前什麼是updatedWorkWork對象的Date值?
  • 您的「舊」對象爲空或日期的值是什麼?

你的代碼似乎沒問題。該問題是DateTime屬性和字段的值的基礎。