Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么这些记录以看似随机的顺序写入数据库?_C#_Sql Server_Asp.net Core_Entity Framework Core - Fatal编程技术网

C# 为什么这些记录以看似随机的顺序写入数据库?

C# 为什么这些记录以看似随机的顺序写入数据库?,c#,sql-server,asp.net-core,entity-framework-core,C#,Sql Server,Asp.net Core,Entity Framework Core,我有一个方法,它基于两个表单变量创建一个工作日列表,numodies和FirstDay,并将其写入数据库。如果我创建的周期为16天或更少,那么这些天都会以完美的顺序写入数据库,但是如果我尝试创建17天或更多天的周期,则顺序似乎是随机的 以下是我的方法: [HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> Create(int NumOfDays, int FirstDay, [Bind(

我有一个方法,它基于两个表单变量创建一个工作日列表,
numodies
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));
}
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务创建(int numodies、int FirstDay、,
[Bind(“BranchId,Title”)]计划期(SchedulePeriod)
{
if(ModelState.IsValid)
{
SchedulePeriodViewModel vm=auto.Map(schedulePeriod);
vm.NumOfDays=NumOfDays;
vm.FirstDay=第一天;
SchedulePeriodValidator validator=新SchedulePeriodValidator();
ValidationResult=validator.Validate(vm);
if(result.IsValid)
{
列表天数=新列表();
string[]dayNames={“星期一”、“星期二”、“星期三”,
“星期四”、“星期五”、“星期六”、“星期日”};
对于(int i=0;i
以下是各时期的模型:

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; }
}
公共类调度周期
{
公共int Id{get;set;}
公共整数{get;set;}
公共字符串标题{get;set;}
公共列表ScheduleDays{get;set;}
公共分支{get;set;}
}
公课时间表
{
公共int Id{get;set;}
public int SchedulePeriodId{get;set;}
公共字符串标题{get;set;}
公共列表时间表{get;set;}
公共SchedulePeriod SchedulePeriod{get;set;}
}

为什么它在长达16天的时间内按预期工作,但在17天或更长时间内始终失败?

在关系数据库概念和MS SQL中,表/关系中没有行/元组的顺序。所以你不应该依赖它。要实现排序,您需要为此使用一个字段,然后在查询时在
ORDER BY
中使用该字段

摘自维基百科文章:

根据body的定义,body的元组不会以任何特定的顺序出现


在关系数据库概念和MS SQL中,表/关系中的行/元组没有顺序。所以你不应该依赖它。要实现排序,您需要为此使用一个字段,然后在查询时在
ORDER BY
中使用该字段

摘自维基百科文章:

根据body的定义,body的元组不会以任何特定的顺序出现


我相信大家都想知道你用的是哪种数据库系统。但无论如何,关系数据库不能保证表中的行顺序。您需要为订购添加另一个字段。并在查询时与
orderby一起使用。我相信大家都想知道您使用的是哪种数据库系统。但无论如何,关系数据库不能保证表中的行顺序。您需要为订购添加另一个字段。并在查询时与ORDER BY一起使用。