zoukankan      html  css  js  c++  java
  • 添加分类和标签,级联数据

    第一步定义类

     /// <summary>
        /// 控制面板中 商品分类
        /// ZKCloud.Shop.Product.Domain.CallBacks.ProductCalssRelation
        /// </summary>
        [ClassProperty("商品分类", Icon = "fa-diamond", Description = "商品分类", PageType = ViewPageType.List, Mark = 1)]
        public class ProductClassRelation : IRelation {
    
        }
        /// <summary>
    
        /// <summary>
        /// 支付测试
        /// </summary>
        [ClassProperty("运费模板", Icon = "fa fa-eraser", Url = "/Admin/DeliveryTemplate/list", Description = "运费模板", SortOrder = 21)]
        public class CMSControl : IControl {
    
        }
    View Code

    第二步:在视图中使用TagHelper引用

      <recursive for="Classes" filter="ZKCloud.Shop.Product.Domain.CallBacks.ProductClassRelation"
                       root="0" mode="Tree"></recursive>
    
    <recursive for="Tags" filter="ZKCloud.Shop.Product.Domain.CallBacks.ProductTagRelation"
                       root="0" mode="Tag"></recursive>

    第三步:在服务中保存数据 (使用事物)

       Resolve<IRelationIndexService>().AddUpdateOrDelete<ProductClassRelation>(product.Id, request.Form["Classes"].ToStr());
       Resolve<IRelationIndexService>().AddUpdateOrDelete<ProductTagRelation>(product.Id, request.Form["Tags"].ToStr());
    
     var context = Repository<ProductRepository>().RepositoryContext;
                context.BeginTransaction();
                try {
    
                    List<RelationIndex> relationIndexAddList = new List<RelationIndex>();
                    //商品添加
                    if (product.Id == 0) {
                        result = Add(product);
                        product.Id = result.Id.ToInt64();
                    }
                    else {
                        result = Update(product);
                    }
                    //添加商品分类和标签
                    Resolve<IRelationIndexService>().AddUpdateOrDelete<ProductClassRelation>(product.Id, request.Form["Classes"].ToStr());
                    Resolve<IRelationIndexService>().AddUpdateOrDelete<ProductTagRelation>(product.Id, request.Form["Tags"].ToStr());
    
                   
                    context.SaveChanges();
                    context.CommitTransaction();
                }
                catch (Exception ex) {
                    context.RollbackTransaction();
                    return ServiceResult.FailedWithMessage("更新失败:" + ex.Message);
                }
                finally {
                    context.DisposeTransaction();
                }
  • 相关阅读:
    【机器学习】:Xgboost和GBDT的不同与比较
    golang pprof
    终于解决了AMD RYZEN 3970X的散热问题
    2022,你好
    二叉树的遍历 → 不用递归,还能遍历吗
    异或运算的巧用 → 不用额外的变量,如何交换两个变量的值?
    关于 RocketMQ 事务消息的正确打开方式 → 你学废了吗
    单向链表的花式玩法 → 还在玩反转?
    二叉树的简单实战 → 一起温故下二叉树的遍历
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/zkcloud/p/5722363.html
Copyright © 2011-2022 走看看