实体框架从数据库获取实时值
我有一个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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为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