C# 将日期更改为列表中的所有对象并更新
我正在尝试将日期更改为列表中的所有训练,其他属性工作正常,只有当我更改日期时,我才会遇到问题。我尝试过不同的故障排除方法,但都不奏效。我已尝试使用updatedWorkout.Date作为workoutStart=超出范围。如果我使用旧的.Date,那么,如何添加一个部分包含7天的新日期 也许有更好的办法 以下是我的方法:C# 将日期更改为列表中的所有对象并更新,c#,entity-framework,datetime,ef-code-first,C#,Entity Framework,Datetime,Ef Code First,我正在尝试将日期更改为列表中的所有训练,其他属性工作正常,只有当我更改日期时,我才会遇到问题。我尝试过不同的故障排除方法,但都不奏效。我已尝试使用updatedWorkout.Date作为workoutStart=超出范围。如果我使用旧的.Date,那么,如何添加一个部分包含7天的新日期 也许有更好的办法 以下是我的方法: private int UpdateForAllWorkouts(IWorkoutCommand updatedWorkout) { try
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("");
}
}
private int updateforallworkout(IWorkoutCommand updatedWorkout)
{
尝试
{//获取时间表
var schedule=_scheduleRepository.getIncludeWorkout(updatedWorkout.ScheduleId);
//按计划id获取计划内的训练
var-workout=schedule.Workouts.FirstOrDefault(w=>w.Id==updatedWorkout.Id);
对于(var workoutStart=workout.Date;workoutStart w.Date==workoutStart&&w.StartTime==workout.StartTime);
var tmp=新型号。训练
{
Id=old.Id,
CourseId=updatedWorkout.CourseId,
InstructorId=updatedWorkout.InstructorId,
Date=/我想你可以使用循环7
像这样:
var workoutStart = workout.Date;
while(true){
if(workoutStart <= schedule.ToDate){
// Do something
}else{
break;
}
workoutStart = workoutStart.AddDays(7);
}
var workoutStart=workout.Date;
while(true){
如果(WorkOutStase请考虑检查我们的DATETIFY属性的值。它们的值可能小于SQLServer允许的DATETIMEAR字段。
- 在分配“tmp”对象之前,updatedWorkOut对象的日期值是多少
- 您的“旧”对象是空的还是日期的值是多少
您的代码似乎没有问题。这个问题是DateTime属性和字段值的基础。设置Date
字段时会遇到什么问题?有问题的存储库是什么?它是否理解Id=old.Id的训练应该用提供的值更新?因为我看到您创建了新的训练,而不是更新t旧的…是实体框架还是L2S(标签中没有指定)?当我通过workoutstart=updatedWorkout设置日期时,我会得到一个out或range。好吧,它本身并不了解要更新的日期,我进行新训练的原因是存储库采用了一个数据模型,但我得到的是一个域模型。我使用的是EF CodeFirst方法。在哪个迭代中会出现异常?是第一次吗是否?你的意思是我必须做另一个循环?在第一个循环中没有其他方法吗?我已经尝试过这个解决方案,但是我从哪里得到新的日期?