Sti*_*ian 0 c# sql-server entity-framework-core asp.net-core
我有一个方法,它基于两个表单变量创建工作日列表,NumOfDays并将FirstDay其写入数据库.如果我创建16天或更短的时间段,那么日期都会以完美的顺序写入数据库,但如果我尝试创建17天或更长时间,则订单看似随机.
这是我的方法:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(int NumOfDays, int FirstDay,
[Bind("BranchId,Title")] SchedulePeriod schedulePeriod)
{
if (ModelState.IsValid)
{
SchedulePeriodViewModel vm = auto.Map<SchedulePeriodViewModel>(schedulePeriod);
vm.NumOfDays = NumOfDays;
vm.FirstDay = FirstDay;
SchedulePeriodValidator validator = new SchedulePeriodValidator();
ValidationResult result = validator.Validate(vm);
if (result.IsValid)
{
List<ScheduleDay> days = new List<ScheduleDay>();
string[] dayNames = { "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday" };
for (int i = 0; i < vm.NumOfDays; i++)
{
days.Add(new ScheduleDay { Title = dayNames[(vm.FirstDay + i) % 7]} );
}
schedulePeriod.ScheduleDays = days;
db.Add(schedulePeriod);
await db.SaveChangesAsync();
return RedirectToAction("Details", "SchedulePeriods",
new { id = schedulePeriod.Id });
}
else
{
// handle invalid validation result
}
}
return View(auto.Map<SchedulePeriodViewModel>(schedulePeriod));
}
Run Code Online (Sandbox Code Playgroud)
以下是各期间的模型:
public class SchedulePeriod
{
public int Id { get; set; }
public int BranchId { get; set; }
public string Title { get; set; }
public List<ScheduleDay> ScheduleDays { get; set; }
public Branch Branch { get; set; }
}
public class ScheduleDay
{
public int Id { get; set; }
public int SchedulePeriodId { get; set; }
public string Title { get; set; }
public List<ScheduleShift> ScheduleShifts { get; set; }
public SchedulePeriod SchedulePeriod { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
为什么它可以在长达16天的时间内按预期工作,但在17或更长时间内始终如一地失败?
| 归档时间: |
|
| 查看次数: |
39 次 |
| 最近记录: |