实体框架从数据库获取实时值

发布于 2025-01-28 00:49:00 字数 1076 浏览 2 评论 0原文

我有一个Nopcommerce网站。我发现一个问题。 请参阅下面的代码

// My account / Order details page
[HttpsRequirement(SslRequirement.Yes)]
public virtual IActionResult Details(int orderId)
{
    var order = _orderService.GetOrderById(orderId);

    if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId)
        return Challenge();

    var orderTotal = order.OrderTotal;

    order = _orderService.GetOrderById(orderId);
    var orderTotal2 = order.OrderTotal;
    var model = _orderModelFactory.PrepareOrderDetailsModel(order);

    return View(model);
}

当我对断点时,

var orderTotal = order.OrderTotal; 

,从表order中获取OrderTotal的值(100)。然后,我将OrderTotal的值从数据库中的100更改为200,然后继续执行代码。

order = _orderService.GetOrderById(orderId);
var orderTotal2 = order.OrderTotal;

此代码应从表order中获取OrderTotal的新值(200),但是,它仍然返回100值的值,对于order> order> ordertototal2

我想在控制器中获取功能中的刷新数据。您能帮我解决这个问题吗?

I have a nopcommerce website. I find a problem. Please see below code

// My account / Order details page
[HttpsRequirement(SslRequirement.Yes)]
public virtual IActionResult Details(int orderId)
{
    var order = _orderService.GetOrderById(orderId);

    if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId)
        return Challenge();

    var orderTotal = order.OrderTotal;

    order = _orderService.GetOrderById(orderId);
    var orderTotal2 = order.OrderTotal;
    var model = _orderModelFactory.PrepareOrderDetailsModel(order);

    return View(model);
}

When I put a breakpoint on

var orderTotal = order.OrderTotal; 

I get the value (100) of orderTotal from table Order. Then I changed the value of orderTotal from 100 to 200 in the database, and continue to execute the code.

order = _orderService.GetOrderById(orderId);
var orderTotal2 = order.OrderTotal;

This code should get the new value (200) of orderTotal from the table Order, however, it still returns a value of 100 for orderTotal2.

I want to get the refreshed data in function in the controller. Could you help me solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2025-02-04 00:49:00

因为GetOrderById方法使用“ TocachedgetById”在内存中检索缓存的顺序,因此您可以使用GetOrderByGuid方法而不是直接从DB获取订单并跳过缓存订单

Because the GetOrderById Method retrieves the cached order in the memory using 'ToCachedGetById', you can use GetOrderByGuid method instead to get the order directly from DB and skip the caching order

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文