导航查询+where的用法问题 返回

SqlSugar 处理完成
3 378
//导航+子表过滤 5.0.9.4-preview06 请注意升级 
//创建一个扩展函数,默认是Class不支持Where
public static List<T> Where<T>(this T thisValue, Func<T,bool> whereExpression ) where T:class,new()
{
   return new List<T>() { thisValue };
var list = db.Queryable<Student_003>()
          .Includes(x => x.school_001.Where(z=>z.Name=="a").ToList())//扩展的Where对子表进行过滤
          .ToList(); //5.0.9.4-preview06 才支持 请注意升级 请注意升级

这块的代码没看懂,这个扩展函数要加到哪里

热忱回答3

  • 整一个扩展类。里面写个方法入参就是当前这个Db上下文。

    类似这样:

    public static partial class Extention

    {

            /// <summary>

            /// 符合条件则Where

            /// </summary>

            /// <typeparam name="T">实体类型</typeparam>

            /// <param name="q">数据源</param>

            /// <param name="need">是否符合条件</param>

            /// <param name="where">筛选</param>

            /// <returns></returns>

            public static ISugarQueryable<T> WhereIf<T>(this ISugarQueryable<T> q, bool need, Expression<Func<T, bool>> where)

            {

                if (need)

                {

                    return q.Where(where);

                }

                else

                {

                    return q;

                }

            }

    }        


    0 回复
  • @滑天下之大稽:多谢,我试试

    0 回复
  • fate sta fate sta VIP0
    1个月前

    百度 C# 扩展方法 用法

    0 回复