EF的一些操作

  • 当查询时涉及外键可能不存在时使用DefaultIfEmpty()
  • 当查询时可能不确定是否存在某个条件时使用WhereIf
		/// <summary>
        /// WhereIf[在condition为true的情况下应用Where表达式]
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        /// <param name="condition"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static IQueryable<T> WhereIf<T>(this IQueryable<T> source, bool condition, Expression<Func<T, bool>> expression)
        {
            return condition ? source.Where(expression) : source;
        }
  • Contains类似于模糊查询
  • a>b? “1”:“2"表示当a大于b时返回"1”,否则返回"2"
public dynamic Search(LandParcelFilter filters)
        {
            if (filters == null)
                 return null;
            var q = from l in db.FW_LandParcel
                    join e in db.Sys_EnterpriseInfo on l.EntID equals e.EntID into entInfo
                    from EntInfo in entInfo.DefaultIfEmpty()
                    join d in db.Sys_DistrictInfo on l.DisID equals d.DisID into disInfo
                    from DisInfo in disInfo.DefaultIfEmpty()
                    select new
                    {
                       l.LapaID,
                       l.LapaName,
                       l.EntID,
                       l.DisID,
                       l.RFID,
                       l.Area,
                       l.ZoneNumber,
                       l.GreenhouseID,
                       l.CreateTime,
                       l.State,
                       l.Remark,
                       DisInfo.DisType,
                       EntName = (EntInfo == null) ? "" : EntInfo.EntName,
                       DisName = (DisInfo == null) ? "" : DisInfo.DisName
                    };
              q =q.WhereIf(filters.EntID > 0, t => t.EntID == filters.EntID)//
                .WhereIf(filters.DisType > 0, t => t.DisType == filters.DisType)
                .WhereIf(filters.DisID > 0, t => t.DisID == filters.DisID)
                .WhereIf(filters.State != 0, t => t.State == filters.State)
                .WhereIf(!filters.keywords.IsBlank(), t => t.LapaName.Contains(filters.keywords));
             return q.OrderByCustom(filters.sidx, filters.sord).Paging(filters.page, filters.rows);          
        }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值