我有以下方法来保存采购订单上的订单属性:
uCommerce_OrderProperty
当我使用此保存值时,我可以看到它显示在public string GetOrderProperty(string orderPropertyName)
{
PurchaseOrder purchaseOrder;
using (new CacheDisabler())
{
purchaseOrder = TransactionLibrary.GetBasket().PurchaseOrder;
}
OrderProperty orderProperty = purchaseOrder.OrderProperties.FirstOrDefault(x => x.Key == orderPropertyName);
if (orderProperty != null)
{
return orderProperty.Value;
}
return string.Empty;
}
表中的顺序。
但是,对于某些属性,当我尝试将它们读回来时,它们会丢失:
public string GetOrderProperty(string orderPropertyName)
{
PurchaseOrder purchaseOrder = SiteContext.Current.OrderContext.GetBasket().PurchaseOrder;
return purchaseOrder[orderPropertyName];
}
我也尝试过uCommerce网站上的代码:
purchaseOrder
如果我检查OrderProperties
,我可以看到purchaseOrder
丢失了。我在任何时候都有7个属性,但OrderProperty op = OrderProperty.FirstOrDefault(x => x.Order.OrderId == purchaseOrder.OrderId && x.Key == orderPropertyName);
似乎只有最多5个,即使表中有7个。
这些是订单属性,而不是订单行属性。任何人都可以给我任何指示,为什么我看到这种行为?
修改
这一行确实得到了我正在寻找的价值:
OrderProperty orderProperty = purchaseOrder.OrderProperties.FirstOrDefault(x => x.Key == orderPropertyName);
即使此行(称为后面的行)返回null:
FROM mcr.microsoft.com/windows/servercore:ltsc2019
SHELL ["powershell"]
RUN Invoke-WebRequest "https://aka.ms/vs/15/release/vs_community.exe" -OutFile "$env:TEMP\vs_community.exe" -UseBasicParsing
RUN & "$env:TEMP\vs_community.exe" --add Microsoft.VisualStudio.Workload.NetWeb --quiet --wait --norestart --noUpdateInstaller | Out-Default
RUN & 'C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSBuild.exe' /version
CMD ["powershell"]
(两者都在寻找相同的订单属性)
谁能告诉我为什么?
答案 0 :(得分:2)
我有一个评论,但由于缺少声誉,我不被允许。
对于您的代码,一切似乎都很好。我可以说服你展示 uCommerce_OrderProperty表? - 我只想检查订单属性的OrderLineId列是否为空。
你应该能够像这样设置和获取它:
var property = order[orderPropertyName];
order[orderPropertyName] = "VALUE";
此致 MADS
我们还建议在http://eureka.ucommerce.net/发布与Ucommerce相关的问题,响应时间通常更快。