.NET 根据数据库自动生成增删改查模板

作者:outlela  来源:本站原创   发布时间:2025-3-13 11:20:58

        <% var service="_monitorService"; %>
        /// <summary>
        /// {{Model.Description}} - 新增
        /// </summary>
        [HttpPost]
        public async Task<IActionResult> {{Model.ClassName}}Add([FromBody] {{Model.ClassName}}Entity entity)
        {
          var model = AutoMapper.Map<{{Model.ClassName}}>(entity);
          model.Mdid = MD5Helper.CreateMD5();
          model.CreateUser = UserId;
          model.CreateTime = DateTime.Now;

          var res = await {{service}}.AddIgnore(model);
          if (res < 1)
          {
              throw new Exception($""操作失败,请稍后重试"");
          }
          return Ok(ResultReponse.Success(res));
        }
        /// <summary>
        /// {{Model.Description}} - 编辑
        /// </summary>
        [HttpPost]
        public async Task<IActionResult> {{Model.ClassName}}Edit([FromBody] {{Model.ClassName}}Entity entity)
        {<%
          var theid="";
          foreach (var item in Model.PropertyGens) {  
              if(item.IsPrimaryKey){
                theid=item.PropertyName;
              }}
          %>
          var b = await {{service}}.IsExistOut<MonitorDevice>(entity.{{theid}});
          if (!b.isExist)
              throw new Exception(""要修改的对象不存在"");
          var model = b.target;
         <% foreach (var item in Model.PropertyGens) {%><% if(item.PropertyName==theid ||item.PropertyName.Contains("Create")){ continue; }%>
         <% if(item.PropertyName=="UpdateUser"){%> model.UpdateUser = UserId;
           <% continue;} else if(item.PropertyName=="UpdateTime"){ %> model.UpdateTime = DateTime.Now;
           <%} else{%> model.{{item.PropertyName}}=entity.{{item.PropertyName}};<%}%><%}%>          
          var res = await {{service}}.UpdateIgnore(model);
          if (res < 1)
          {
              throw new Exception($""修改失败,请稍后重试"");
          }
          return Ok(ResultReponse.Success($""修改成功""));
        }
        /// <summary>
        /// {{Model.Description}} - 删除
        /// </summary>
        [HttpPost]
        public async Task<IActionResult> {{Model.ClassName}}Del([FromBody] {{Model.ClassName}}Entity entity)
        {
          <%
          var thekey="";
          foreach (var item in Model.PropertyGens) {  
              if(item.IsPrimaryKey){
                thekey=item.PropertyName;
              }}
          %>
          var b = await {{service}}.IsExistOut<{{Model.ClassName}}>(entity.{{thekey}});
          if (!b.isExist)
              throw new Exception(""要删除的对象不存在"");
          var res = await {{service}}.Delete(b.target);
          if (res < 1)
          {
              throw new Exception($""删除失败,请稍后重试"");
          }
          return Ok(ResultReponse.Success($""删除成功""));
        }
        /// <summary>
        /// {{Model.Description}} - 查询
        /// </summary>
        [HttpPost]
        public async Task<IActionResult> {{Model.ClassName}}List([FromBody] {{Model.ClassName}}Entity search)
        {
          Expression<Func<{{Model.ClassName}}, bool>> where = a => true;
          where = where.AndIf(search.RowState != null, a => a.RowState == search.RowState);
          var list = await _monitorService.PageData<{{Model.ClassName}}, {{Model.ClassName}}Entity, object>(search, where, a => a.CreateTime, true);
          return Ok(PageResult(list, search.Total));
        }
        /// <summary>
        /// {{Model.Description}} - 查询
        /// </summary>
        [HttpPost]
        public async Task<IActionResult> {{Model.ClassName}}ListForSelect([FromBody] {{Model.ClassName}}Entity search)
        {
          Expression<Func<{{Model.ClassName}}, bool>> where = a => true;
          where = where.AndIf(search.RowState != null, a => a.RowState == search.RowState);
          var list = await _monitorService.GetAll<{{Model.ClassName}}, {{Model.ClassName}}Entity>(where);
          return Ok(ResultReponse.Success(list));
        }

此模板还需要上层Service,才能完成,只能做到专用,暂时不考虑做通用版本,要通用的话,工程量太大了。

*本文最后修改于:2025-3-13 13:51:25
本文标签: .NET 数据库 自动 生成 增删改查 模板
本文由本站原创发布, 本文链接地址:https://outlela.com/Code/211.html
转载或引用请保留地址并注明出处:outlela.com