.net EF Join 关联表分页查询
来源:互联网 发布:单链表反转java 编辑:程序博客网 时间:2024/06/04 19:18
Join中第二个参数和第三个参数即为两张表关联对应的字段
第四个参数new 后面如果不写Model名,系统会自动生成带字段的list类型
public List<OperatorTrainingReportVM> GetOperatorTrainingReportByStart(int start, int pageSize, out int total, Expression<Func<OperatorTrainingReportVM, bool>> whLamdba)
{IQueryable<Operator> operators = operatorService.GetAll();
IQueryable<Training> trainings = trainingService.GetAll();
var list = trainings.Join(operators, a => a.OperatorId, b => b.Id, (a, b) => new OperatorTrainingReportVM
{
EmployeeNO = b.EmployeeNO,
Name = b.Name,
Sex = b.Sex,
AreaName = b.Area.Name,
CostName = b.Cost.Name,
OnBoardDate = b.OnBoardDate,
ShiftName = b.Shift.Name,
DirectorNO = b.Director.EmployeeNO,
DirectorName = b.Director.Name,
ConfirmDate = b.ConfirmDate,
IsDimission = b.DimissionDate != null ? true : false,
DimissionDate = b.DimissionDate,
ServiceDays = (int)DbFunctions.DiffDays(b.OnBoardDate, DateTime.Now),
PositionName = b.Position.Name,
PositionLevelName = b.PositionLevel.Name,
DimissionName = b.Dimission.Name,
DimissionReason = b.Dimission.Reason,
StartDate = a.StartDate,
EndDate = a.EndDate,
ExamineDate = a.ExamineDate,
ExpireDate = a.ExpireDate,
Enginner = a.Enginner,
Trainer = a.Trainer,
Score = a.Score,
StandardScore = a.StandardScore,
Result = a.Result,
CourseName = a.Course.Name,
OperationLevelName = a.OperationLevel.Name,
Enabled = b.Enabled
}).Where(whLamdba);
total = list.Count();
var result = list.OrderBy(t => t.EmployeeNO).Skip(start).Take(pageSize).ToList();
return result;
}
其中Join部分具体是inner join还是left join,EF会自动根据查询条件生成相应的SQL
开发中刚学习到,如果不正确的地方,欢迎指正
0 0
- .net EF Join 关联表分页查询
- LINQ,EF联合查询join
- RDIFramework.NET 中多表关联查询分页实例
- ef linq to sql left join 连表查询
- EF表连接查询 include join 方法介绍
- SQL语句-- LEFT JOIN 关联表查询
- Yii2 使用九 join关联表查询
- 关联查询join
- EF实现分页查询+条件查询+排序
- spring-boot 分页查询(关联表)
- spring-boot 分页查询(关联表)
- hql的关联查询 join
- Ibatis left join关联查询
- SQL 各种join关联查询
- yii2 join 连表查询得不到关联表数据
- 【Access】 LEFT OUTER JOIN 关联多表的查询语句
- 三表关联查询-多次LEFT JOIN...ON
- Yii2-多表关联查询(with、join、joinwith)示例
- asp.net 集成微信,钉钉
- ANSI SQL语句分类
- 开发智能合约的注意事项(以太坊-Ethereum)
- Kettle的命令行参数使用
- 替换ssh端口号
- .net EF Join 关联表分页查询
- 蓝牙PROFILE
- android studio library module导出为jar
- ios取消按钮高亮
- 排序程序
- sdkman 管理开发中使用的sdk
- android 获取指定磁盘内存的工具类【兼容API18以上】,sharedPreference工具类
- Objective-C中的Block(闭包)
- jQuery中$.fn的用法示例介绍