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);
}