del删除

注意:写在[主表service.cs]中

    /// <summary>
    /// 删除
    /// </summary>
    /// <param name="keys">删除的行的主键</param>
    /// <param name="delList">删除时是否将明细也删除</param>
    /// <returns></returns>
    public override WebResponseContent Del(object[] keys, bool delList = true)
    {

       //注意:如果业务比较复杂,将下面的代码全部清空,这里直接写sql处理

        //删除前可以做一些查询判断
        //将keys转换为表的主键类型一致,用于下面的查询
        var ids = keys.Select(s => s.GetGuid()).ToList();
        //如果主键是int类型,用GetInt转换
        //var ids = keys.Select(s => s.GetInt()).ToList();
        var data= repository.FindAsIQueryable(x => ids.Contains(x.FormId)).Select(s => new { }).ToList();
        if (判断条件)
        {
            // return WebResponseContent.Instance.Error("提示信息");
        }
        //也可以对其他表查询,操作同上
        // repository.DbContext.Set<表>().Where(x=>ids.Contains(x.FormId)); ;
        //或者删除时判断其他表没有有数据
        bool b =  repository.DbContext.Set<>().Where(x => ids.Any(x.FormId)); ;
        if (b)
        {
            // return WebResponseContent.Instance.Error("提示信息");
        }
        //删除前处理
        //删除的行的主键
        DelOnExecuting = (object[] _keys) =>
        {
            return webResponse.OK();
        };
        //删除后处理
        //删除的行的主键
        DelOnExecuted = (object[] _keys) =>
        {
            return webResponse.OK();
        };
        return base.Del(keys, delList);
    }
Last Updated 2025/4/15 14:51:28