- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
使用 NopCommerce 3.8,Visual Studio 2015 教授。
我创建了一个插件,负责对我的 Web API 进行静态调用,该 API 向 Nop 公开不同的数据库。
该过程通过 nop 任务运行,它成功拉回数据,我可以按我认为合适的方式单步执行和操作,到目前为止没有问题。
当我尝试更新产品表上的记录时出现问题,我执行了更新...但是什么也没发生,没有变化,没有错误。
我认为这是由于 Context 不知道我新实例化的产品对象,但是我对我需要做的与我的特定示例相关的事情一无所知。
类似的问题通常引用一个“模型”对象,它是方法调用参数的一部分,“模型”有方法ToEntity
,这似乎是堆栈中类似问题的答案。
但是我的示例没有 ToEntity
类/方法,可能是因为我的参数实际上是一个产品列表。在这里澄清我的代码。
RestClient.cs中的方法
public async Task<List<T>> GetAsync()
{
try
{
var httpClient = new HttpClient();
var json = await httpClient.GetStringAsync(ApiControllerURL);
var taskModels = JsonConvert.DeserializeObject<List<T>>(json);
return taskModels;
}
catch (Exception e)
{
return null;
}
}
我的服务类中的方法
public async Task<List<MWProduct>> GetProductsAsync()
{
RestClient<MWProduct> restClient = new RestClient<MWProduct>(ApiConst.Products);
var productsList = await restClient.GetAsync();
InsertSyncProd(productsList.Select(x => x).ToList());
return productsList;
}
private void InsertSyncProd(List<MWProduct> inserted)
{
var model = inserted.Select(x =>
{
switch (x.AD_Action)
{
case "I":
//_productService.InsertProduct(row);
break;
case "U":
UpdateSyncProd(inserted);
.....
然后是绑定(bind)和更新的方法
private void UpdateSyncProd(List<MWProduct> inserted)
{
var me = inserted.Select(x =>
{
var productEnt = _productRepos.Table.FirstOrDefault(ent => ent.Sku == x.Sku.ToString());
if(productEnt != null)
{
productEnt.Sku = x.Sku.ToString();
productEnt.ShortDescription = x.ShortDescription;
productEnt.FullDescription = x.FullDescription;
productEnt.Name = x.Name;
productEnt.Height = x.Pd_height != null ? Convert.ToDecimal(x.Pd_height) : 0;
productEnt.Width = x.Pd_width != null ? Convert.ToDecimal(x.Pd_width) : 0;
productEnt.Length = x.Pd_depth != null ? Convert.ToDecimal(x.Pd_depth) : 0;
productEnt.UpdatedOnUtc = DateTime.UtcNow;
}
//TODO: set to entity so context nows and can update
_productService.UpdateProduct(productEnt);
return productEnt;
});
}
如您所见,我获取数据并根据结果将数据传递给特定方法。从我迭代的方法中的那个列表,并从表中拉出实体,然后使用该被操纵的实体通过产品服务进行更新。
那么我在这里遗漏了什么,我确定它是第 1 步,我认为这可能是因为 1) 上下文仍然不知道所讨论的实体,或者 2) 它的调用不正确。
总结更新没有更新,可能是由于上下文不了解或者我的方法是错误的。 (可能两者都有)。
更新:
我在我的服务周围添加了一些 logger.inertlog
,它运行良好,直到调用更新为止。但我再次检查产品,发现管理部分没有任何变化。
我已经提供了完整的源代码,因为我认为这可能与其余代码设置有关?
更新:
在我的执行方法上为测试添加了以下内容。
var myprod = _productRepos.GetById(4852);
myprod.ShortDescription = "db test";
productRepos.Update(myprod);
这成功更新了产品描述。我将我的方法从我的服务移到了任务类中,但仍然没有运气。我看得越多,我就越认为我的异步正在以某种方式杀死数据库上下文。
最佳答案
关闭异步并将 getbyid 绑定(bind)到新产品,还删除了开关的 lambda 并将其更改为 foreach 循环。好像终于要更新结果了。
无法确认异步是否是罪魁祸首,目前 web api 似乎返回相同的结果,即使数据已更改(.net 核心中默认的一些奇怪的缓存?)所以我为此创建了一个新问题。
更新:问题似乎源于异步调试不当。我试图遍历 await 调用的每个实例,简单地说我试图遍历技术上可能完成或可能尚未完成的集合。可能是由于调试不当,我没有意识到。
所以回答 await your collection 然后迭代。
关于c# - Nopcommerce 更新实体问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41609158/
我已将 NopCommerce 部署到 Windows azure 网站,并且可以在网站 URL 上看到 NopCommerce 网站的主页。使用管理员凭据登录后,我可以在顶部看到管理链接。但是当我点
我想在结帐过程中的运输步骤中添加新的运输方式。我应该在管理部分的什么地方添加它们?如何?到目前为止,我在 Config > Shipping > Shipping Methods 部分进行了尝试。但这
我想在产品页面上显示从布局上传的尺寸,因为我有很多产品并且每个 SKU 都有不同的尺寸,所以我会浪费很多时间来添加每个尺寸作为产品规范。 我找到了 1.9 版的扩展,但我正在使用 3.0。 最佳答案
我是 nopcommerce 的新手。 nopcommerce 在 web 视觉表达中运行良好,我已经自定义了几个功能。 我尝试将其发布到 azure: 我将解决方案中每个项目的构建更改为发布并进行了
我一直在等待 nopCommerce 安装大约半小时(到免费层 AWS 服务器上),我很想看看安装是否仍在进行,或者是否在某个时候崩溃了。 nopCommerce 是否会输出我可以使用像baretai
我正在 nopCommerce 中使用数据访问和小部件创建一个插件。 因为我已经创建了我想通过替换(覆盖)产品图像及其缩略图来显示在产品详细信息页面上的小部件。 但我不知道如何覆盖 View ,甚至不
我需要为每次销售的每件商品指定一些值(value)。想象一下,能够分别为购物篮中的每件商品添加礼品留言。 如何实现? 我正在使用 nopCommerce 1.6(为了与 .net 3.5 兼容)。 我
我在 nopcommerce 的插件中编写任务。任务必须从网站 (https://data.icecat.biz/export/level4/) 下载目录。如果由于某种原因下载失败,我希望我的程序等待
如何向管理区域的产品列表页面添加新按钮/链接?我有一个插件,可以从 nop 数据库中的产品生成 xml 文件,并希望在此页面添加一个按钮供管理员用户使用。有什么想法吗? 编辑 请注意,我知道我可以更改
我们正在配置多商店设置。我们的产品有多个属性,我们希望根据所涉及的商店限制每个属性的值。例如。如果产品是Mug,那么对于A 店,杯子上可能会印有Logo A 和Phone A,但对于B 店,同样的马克
我在mvc框架中的nopcommerce2.2项目中工作。我想在aspx页面中获取当前的客户ID。我可以在nopcommerce2.2中获取当前的客户信息吗? 最佳答案 使用new WebWorkCo
我想在每个产品页面中显示一个文本框和一个按钮。客户将在文本框中输入他/她的城市名称,然后单击按钮以了解他/她的城市是否可以送货。 我了解到我应该创建一个插件/小部件。但是我对使用哪个有点困惑?插入?还
使用 NopCommerce 3.8。 我创建了一个新的 Misc 插件。目的是运行一个任务,该任务可以安静地调用我的 web api 来获取数据。 以下是我的代码: 插件类 public class
嗨,我是 NopCommerce 的新手,但我需要一些帮助,我目前正在新闻列表页面上做一些工作,我想知道是否需要添加任何代码来提取任何图像在实际的新闻页面上。所以列表页会显示一些内容和一张图片。 最佳
我正在尝试学习 NopCommerce,并计划将其用于一个项目。我下载了2.50版本的源代码。我编译了代码并完成了数据库安装。 现在有些本地化资源不能看作是资源值(value)。 例如,在管理中有一个
我正在为 NopCommerce 开发支付网关。我有一些额外的信息(分期付款次数)需要显示在管理区域的“订单详细信息”页面的“信息”选项卡上。基本上,我想在某处添加一个额外的字段,以显示客户选择支付的
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
我目前正在 NopCommerce 上进行组合报价。所以我需要一次单击将多个产品添加到购物车。内置的 NopCommerce 格式用于将单个产品添加到购物车是 AjaxCart.addproductt
下午好,我正在使用 NopCommerce 2.65(在 CSHTML 中)开发一个网站,客户要求我进行两种样式修改,但我目前无法做到: 1st – 当用户浏览特定子类别时,同一级别的所有子类别都必须
我使用 Google Charts Api 制作了一些图表,我想在 NopCommerce Amin 面板中显示这些图表。但是我想遵循现有的布局,但它对我不起作用。尝试使用表格、tr 的 td、更改不
我是一名优秀的程序员,十分优秀!