/// <summary> /// 返回业务模型对象全部的结果查询表达式 /// </summary> /// <returns></returns> public virtual IQueryable <TModel> GetQuery() { IQueryable <TEntity> query = _innerDataProvider.GetQuery(); if (typeof(MultiLanguage).IsAssignableFrom(typeof(TEntity))) { query = query.Include("LangTexts"); } //如果实现逻辑删除接口,并且没有改写EFAuditDataSerice,则在此加条件 if (typeof(ICanLogicalDeleteEntity).IsAssignableFrom(typeof(TEntity)) && _innerDataProvider.GetType() == typeof(EFAuditDataService <TEntity>)) { query = query.Where("IsDeleted=false"); } if (typeof(IDataRule).IsAssignableFrom(typeof(TEntity))) { var context = _innerDataProvider.GetContext(); var userId = AppManager.Instance.GetCurrentUserId().ToInt(); query = query.Where(t => context.Set <Sys_DataRule>().Any(dr => dr.BillId == t.Id && dr.ObjectId == userId)); } var langMapper = new LangDataMapper <TModel, TEntity>(); var duQuery = new DeptUserAuthQuery <TModel>(); return(duQuery.GetQuery(query.ProjectTo <TModel>())); }