无法将数据更新到数据库

布雷特·李

我不明白为什么会发生此错误。我的程序是这样的:-我在数据库中收集了许多数据,并且还列出了会话数据的类型。其中“会话”数据标识类似于我的数据库数据标识,在那里我使用功能更改数量。但是当循环的最后一个计数更改我的数量属性(我调试了它)时,我发现了此错误。

这是我的代码:

public async Task<IActionResult> Checkout(Order11 anOrder)
{
    List<Shop> shop = HttpContext.Session.Get<List<Shop>>("shop");

    for (int i = 0; i < shop.Count; i++)
    {
        // var r = shop[i].Id;
        if (_db.Shop.Any(x => x.Id == shop[i].Id))
        {
            var t = _db.Shop.Where(x => x.Id == shop[i].Id).ToList();

            if (t[i].Quantity > 0)
            {
                t[i].Quantity = (t[i].Quantity - shop[i].Quantity) 
            }
               
            _db.SaveChanges();
        }
    }

    // other code
}

这是我的输出:

在此处输入图片说明

我不知道这有什么解决方案。我是初学者。请帮忙。

贾斯珀·肯特(Jasper Kent)

考虑一下这里发生的事情:

var t = _db.Shop.Where(x => x.Id == shop[i].Id).ToList();

假设您的ID是唯一的,则只会产生一项,但会将其作为列表的唯一成员返回。

因此,你不想索引tt[i]您只想t[0]获取唯一的元素。

但是,整个过程可以变得更加整洁:

for (int i = 0; i < shop.Count; i++)
{
     // Single() returns null for no match, the object for a single match
     // and throws an exception for multiple matches
     var t = _db.Shop.Single(x => x.Id == shop[i].Id);

     // ?. first checks if t is null, and only then looks at Quantity
     // if t is not null (i.e. Single() has returned a match)
     if (t?.Quantity > 0)
     {
         t.Quantity = (t.Quantity - shop[i].Quantity);

         _db.SaveChanges();
     }         
}

(单独的问题,但是我不确定您是否需要_db.SaveChanges()在循环内调用。为什么不只在末尾调用一次?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更新到SpringBoot 2.4.0后内存数据库中的H2无法正常工作

来自分类Dev

数据未更新到数据库C#DataGridView

来自分类Dev

更新到AspNet Identity版本2后无法建立或迁移数据库

来自分类Dev

如何使用django将数据更新到sql数据库中的表中

来自分类Dev

将记录从ListVIEW更新到数据库

来自分类Dev

MEAN Stack:如何将函数的结果更新到数据库?

来自分类Dev

平均值:无法将数据更新到数据库

来自分类Dev

如何从另一个活动创建的数据库中获取数据/无法将数据更新到数据库(Android Studio,SQLite)

来自分类Dev

Laravel:Ajax更新到数据库

来自分类Dev

无法更新数据库

来自分类Dev

使用PHP将多个HTML字段更新到MySQL数据库

来自分类Dev

如何将数据从本地SQL Server数据库更新到联机SQL Server数据库?

来自分类Dev

每当我更新gridview时如何将今天的日期更新到数据库

来自分类Dev

Doctrine 2将数据更新到数据库中,但未将数据更新到实体中

来自分类Dev

laravel如何将字段更新到数据库

来自分类Dev

使用php将数据从表单更新到数据库

来自分类Dev

连续添加| 更新| 将数据从数据库刷新到页面而无需回发

来自分类Dev

无法将输入的表决数更新到我的数据库中

来自分类Dev

如何将信息更新到数据库中?

来自分类Dev

使用C#将新添加的datagridview行更新到oledb数据库

来自分类Dev

无法将记录插入或更新到数据库jsp

来自分类Dev

更新到数据库失败

来自分类Dev

平均值:无法将数据更新到数据库

来自分类Dev

如何更新到数据库

来自分类Dev

将数据连接更新到 Visual Studio 17 上的最新数据库版本

来自分类Dev

单击按钮时将数据从 EditText Listview 更新到 firebase 数据库

来自分类Dev

Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

来自分类Dev

无法在 rails 中将记录保存/更新到数据库中

来自分类Dev

使用 InsertAllOnSubmit 将列表对象更新到数据库

Related 相关文章

  1. 1

    更新到SpringBoot 2.4.0后内存数据库中的H2无法正常工作

  2. 2

    数据未更新到数据库C#DataGridView

  3. 3

    更新到AspNet Identity版本2后无法建立或迁移数据库

  4. 4

    如何使用django将数据更新到sql数据库中的表中

  5. 5

    将记录从ListVIEW更新到数据库

  6. 6

    MEAN Stack:如何将函数的结果更新到数据库?

  7. 7

    平均值:无法将数据更新到数据库

  8. 8

    如何从另一个活动创建的数据库中获取数据/无法将数据更新到数据库(Android Studio,SQLite)

  9. 9

    Laravel:Ajax更新到数据库

  10. 10

    无法更新数据库

  11. 11

    使用PHP将多个HTML字段更新到MySQL数据库

  12. 12

    如何将数据从本地SQL Server数据库更新到联机SQL Server数据库?

  13. 13

    每当我更新gridview时如何将今天的日期更新到数据库

  14. 14

    Doctrine 2将数据更新到数据库中,但未将数据更新到实体中

  15. 15

    laravel如何将字段更新到数据库

  16. 16

    使用php将数据从表单更新到数据库

  17. 17

    连续添加| 更新| 将数据从数据库刷新到页面而无需回发

  18. 18

    无法将输入的表决数更新到我的数据库中

  19. 19

    如何将信息更新到数据库中?

  20. 20

    使用C#将新添加的datagridview行更新到oledb数据库

  21. 21

    无法将记录插入或更新到数据库jsp

  22. 22

    更新到数据库失败

  23. 23

    平均值:无法将数据更新到数据库

  24. 24

    如何更新到数据库

  25. 25

    将数据连接更新到 Visual Studio 17 上的最新数据库版本

  26. 26

    单击按钮时将数据从 EditText Listview 更新到 firebase 数据库

  27. 27

    Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

  28. 28

    无法在 rails 中将记录保存/更新到数据库中

  29. 29

    使用 InsertAllOnSubmit 将列表对象更新到数据库

热门标签

归档