Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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# 写列表<&燃气轮机;到数据库asp.net_C#_Asp.net_Sql Server_Asp.net Mvc_Asp.net Core - Fatal编程技术网

C# 写列表<&燃气轮机;到数据库asp.net

C# 写列表<&燃气轮机;到数据库asp.net,c#,asp.net,sql-server,asp.net-mvc,asp.net-core,C#,Asp.net,Sql Server,Asp.net Mvc,Asp.net Core,我一直在写数据库 不要给我任何错误 写命令不起作用 控制器: [HttpPost] public async Task<ActionResult>PartialTabelaEcp(string userDate) { var numerMiesiaca = 1; var numerRoku = 1; var dbExists = _ecpContext.Karta.FirstOrDefault(f => f.DzMiesiaca == 1 &am

我一直在写数据库

  • 不要给我任何错误

  • 写命令不起作用

  • 控制器:

    [HttpPost]
    public async Task<ActionResult>PartialTabelaEcp(string userDate)
    {
         var numerMiesiaca = 1;
         var numerRoku = 1;
         var dbExists = _ecpContext.Karta.FirstOrDefault(f => f.DzMiesiaca == 1 && f.Miesiac == 
                                 numerMiesiaca && f.Rok == numerRoku && f.Login == userName);
        if (dbExists == null)
        {
            List<Karta_Model> objKartaModel = new List<Karta_Model>();
    
            for (int i = 1; i <= liczbaDni; i++)
            {
                DateTime thisDate = new DateTime(numerRoku, numerMiesiaca, i);
    
                var day = culture.DateTimeFormat.GetDayName(thisDate.DayOfWeek);
                var model = new Karta_Model()
                {
                    DzMiesiaca = i,
                    DzTygodnia = day,
                    Rozpoczecie = "00:00"
                };
    
                objKartaModel.Add(model);
            }
    
            await _ecpContext.Karta.AddRangeAsync(objKartaModel);
            await _ecpContext.SaveChangesAsync();
        }
    }
    
    return PartialView("_TabelaEwidencja" );
    
    public partial class Karta_Model
    {
        public int? DzMiesiaca { get; set; }
        public string? DzTygodnia { get; set; }
        public string? Rozpoczecie { get; set; } 
    }
    

    正如@ADyson提到的,您正在同步代码中使用异步方法。因此,要么需要使代码异步(如@David或@Amankhani MohammadJavad),要么使方法同步。EF提供了
    AddRange
    SaveChanges
    两种方法

    改变

     _ecpContext.Karta.AddRangeAsync(objKartaModel);
     _ecpContext.SaveChangesAsync();
    


    您的方法正在调用
    async
    操作:

    _ecpContext.Karta.AddRangeAsync(objKartaModel);
    _ecpContext.SaveChangesAsync();
    
    因此,您需要等待他们:

    await _ecpContext.Karta.AddRangeAsync(objKartaModel);
    await _ecpContext.SaveChangesAsync();
    
    为此,您的方法还需要是
    async

    public async Task<ActionResult> PartialTabelaEcp(string userDate)
    
    public异步任务partialTableAP(字符串userDate)
    

    如果您不等待异步操作,那么代码将在它们完成之前继续执行,因此当您进入
    savechangesync
    时,就没有什么要保存的了。(该操作本身可能会失败,您没有观察到失败。)

    您使用的是异步方法,但您的方法不是异步方法。您可以执行以下操作:

      [HttpPost]
    public async Task<ActionResult> PartialTabelaEcp(string userDate)
            {
                 var numerMiesiaca = 1;
                 var numerRoku = 1;
                 var dbExists = _ecpContext.Karta.FirstOrDefaultAsync(f => f.DzMiesiaca == 1 && f.Miesiac == 
                                               numerMiesiaca && f.Rok == numerRoku && f.Login == userName);
                if (dbExists == null)
                {
                    List<Karta_Model> objKartaModel = new List<Karta_Model>();
    
                    for (int i = 1; i <= liczbaDni; i++)
                    {
                        DateTime thisDate = new DateTime(numerRoku, numerMiesiaca, i);
    
    
                        var day = culture.DateTimeFormat.GetDayName(thisDate.DayOfWeek);
                        var model = new Karta_Model()
                        {
                            DzMiesiaca = i,
                            DzTygodnia = day,
                            Rozpoczecie = "00:00"
                        };
    
                        objKartaModel.Add(model);
    
                    }
    
    
                    await _ecpContext.Karta.AddRangeAsync(objKartaModel);
                    await _ecpContext.SaveChangesAsync();
                }
    
            }
     return PartialView("_TabelaEwidencja" );
    
    [HttpPost]
    公共异步任务partialTableAP(字符串userDate)
    {
    var numeriesiaca=1;
    var Numeroku=1;
    var dbExists=\u ecpContext.Karta.FirstOrDefaultAsync(f=>f.DzMiesiaca==1&f.Miesiac==
    numeriesiaca&f.Rok==numeriroku&f.Login==用户名);
    if(dbExists==null)
    {
    List objKartaModel=新列表();
    
    对于(int i=1;i)您正在使用异步方法,但在移动到下一个命令之前没有等待结果。@ADyson,我如何通过编程实现这一点?似乎您可能需要学习一些异步编程入门教程-既要了解异步的用途,也要了解如何使用它。tldr:要么将您的外部方法
    设置为ync
    然后
    等待
    这些方法,或者改用这些方法的同步版本。在这种情况下,使用异步/等待模式通常是有利的,因为它在执行数据库操作时释放.NET代码中的线程,这意味着您的服务器有更多的容量来响应其他请求rgot等待方法内部的异步调用。如果不这样做,则无法解决问题。你不能说这是一个有缺陷的解决方案,可以通过这种方式解决问题。问题出在哪里?抱歉,在我写这篇文章时,我的页面没有使用你添加的
    wait
    的编辑进行更新。我现在删除了第二条评论。Howev呃,我认为你也应该在答案中添加文字,解释为什么
    wait
    和其他答案一样,也是解决方案的一个必要部分。我想尽快完成工作并解决他们的问题。谢谢你……因为?不要只把代码丢给别人。解释你的更改意味着什么以及为什么它会起作用(以及任何暗示,例如,在本例中,失去异步I/O操作的优势。)否则,不真正理解此主题的人可能只是盲目地复制和粘贴代码而不理解它。您已经解释过:)我已经解释了一部分。但是如果你想避免被否决,你还是应该把它更完整地添加到答案正文中。。。
      [HttpPost]
    public async Task<ActionResult> PartialTabelaEcp(string userDate)
            {
                 var numerMiesiaca = 1;
                 var numerRoku = 1;
                 var dbExists = _ecpContext.Karta.FirstOrDefaultAsync(f => f.DzMiesiaca == 1 && f.Miesiac == 
                                               numerMiesiaca && f.Rok == numerRoku && f.Login == userName);
                if (dbExists == null)
                {
                    List<Karta_Model> objKartaModel = new List<Karta_Model>();
    
                    for (int i = 1; i <= liczbaDni; i++)
                    {
                        DateTime thisDate = new DateTime(numerRoku, numerMiesiaca, i);
    
    
                        var day = culture.DateTimeFormat.GetDayName(thisDate.DayOfWeek);
                        var model = new Karta_Model()
                        {
                            DzMiesiaca = i,
                            DzTygodnia = day,
                            Rozpoczecie = "00:00"
                        };
    
                        objKartaModel.Add(model);
    
                    }
    
    
                    await _ecpContext.Karta.AddRangeAsync(objKartaModel);
                    await _ecpContext.SaveChangesAsync();
                }
    
            }
     return PartialView("_TabelaEwidencja" );