• 添加分类和标签,级联数据


    第一步定义类

     /// <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();
                }
  • 相关阅读:
    Hihocoder 1275 扫地机器人 计算几何
    CodeForces 771C Bear and Tree Jumps 树形DP
    CodeForces 778D Parquet Re-laying 构造
    CodeForces 785E Anton and Permutation 分块
    CodeForces 785D Anton and School
    CodeForces 785C Anton and Fairy Tale 二分
    Hexo Next 接入 google AdSense 广告
    如何统计 Hexo 网站的访问地区和IP
    Design and Implementation of Global Path Planning System for Unmanned Surface Vehicle among Multiple Task Points
    通过ODBC接口访问人大金仓数据库
  • 原文地址:https://www.cnblogs.com/zkcloud/p/5722363.html
Copyright © 2020-2023  润新知