LINQ 联查多表数据并封装到ViewModel的实现

public List<MyTask> GetPagedTaskList(int pageIndex, int pageSize, string stuNum, int taskTypeId)
        {

DbSet<T_TaskParticipation> taskParticipations = db.Set<T_TaskParticipation>();
            DbSet<T_TaskInformation> taskInformations = db.Set<T_TaskInformation>();
            DbSet<T_TaskType> taskTypes = db.Set<T_TaskType>();
            DbSet<T_MemberInformation> memberInformations = db.Set<T_MemberInformation>();

List<MyTask> myTaskList = (from taskParticipation in taskParticipations
                        join taskInformation in taskInformations on taskParticipation.TaskId equals taskInformation.TaskId
                        join taskType in taskTypes on taskInformation.TaskTypeId equals taskType.TaskTypeId
                        join memberInformation in memberInformations on taskInformation.TaskSender equals memberInformation.StuNum
                        where taskParticipation.TaskReceiver == stuNum
                        && taskInformation.TaskTypeId == taskTypeId
                        select new MyTask()
                        {
                            TaskId=taskParticipation.TaskId,
                            TaskSender=taskInformation.TaskSender,
                            TaskName=taskInformation.TaskName,
                            TaskTypeId=taskInformation.TaskTypeId,
                            TaskContent=taskInformation.TaskContent,
                            TaskBegTime=taskInformation.TaskBegTime,
                            TaskEndTime=taskInformation.TaskEndTime,
                            TaskReceiver=taskParticipation.TaskReceiver,
                            TaskGrade=taskParticipation.TaskGrade,
                            IsRead=taskParticipation.IsRead,
                            IsComplete=taskParticipation.IsComplete,
                            TaskSenderName=memberInformation.StuName,
                            TaskTypeName=taskType.TaskTypeName
                        }).OrderBy(taskParticipation => taskParticipation.IsRead).ThenBy(taskParticipation => taskParticipation.TaskId).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

return myTaskList;

}

LINQ 联查多表数据并封装到ViewModel的实现的更多相关文章

  1. Selenium应用代码(读取mysql表数据登录)

    1. 封装链接数据库的类: import java.sql.ResultSet; import java.sql.Connection; import java.sql.DriverManager; ...

  2. Struts2(接受表单参数)请求数据自动封装和数据类型转换

    Struts2请求数据自动封装: (1)实现原理:参数拦截器 (2)方式1:jsp表单数据填充到action中的属性:        普通的成员变量,必须给set,get可以不给的.    注意点,A ...

  3. PreparedStatement实现表数据的增删改 & 封装数据库链接和关闭操作

    PreparedStatement实现表数据的增删改 PreparedStatementUpdateTest package com.aff.PreparedStatement; import jav ...

  4. ABAP->内表数据下载到CSV格式(原创转载请注明)

    需求:将alv上面的数据计算到内表中区,然后通过自定义按钮进行下载到csv格式中 附加:现在基本不用csv导出了,但是有些变态需求强行要求,也只好研究出来了,excel与txt导出很简单,那就不多说了 ...

  5. struts中的请求数据自动封装

    Struts 2框架会将表单的参数以同名的方式设置给对应Action的属性中.该工作主要是由Parameters拦截器做的.而该拦截器中已经自动的实现了String到基本数据类型之间的转换工作.在st ...

  6. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  7. Struts2第四篇【请求数据自动封装、Action得到域对象】

    前言 前三篇的Struts博文基本把Struts的配置信息讲解完了-..本博文主要讲解Struts对数据的处理 一般地,我们使用Servlet的时候都是分为几个步骤的: 得到web层的数据.封装数据 ...

  8. 利用Flume将MySQL表数据准实时抽取到HDFS

    转自:http://blog.csdn.net/wzy0623/article/details/73650053 一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取 ...

  9. Struts2框架笔记02_API_结果页面配置_数据的封装

    目录 1. Struts2的Servlet的API的访问 1.1 方式一:完全解耦合的方式 1.1.1 环境搭建 1.1.2 代码 1.1.3 测试 1.1.4 向域对象中存入数据 1.2 方式二:使 ...

随机推荐

  1. clip:rect矩形剪裁

    clip:rect(top right bottom left);依据上-右-下-左的顺序提供自图片左上角为(0,0)坐标计算的四个偏移数值,其中任一数值都可用auto替换. 矩形剪裁 还需要绝对定位 ...

  2. python获取指定时间段内的随机不重复的时间点

    上篇 <python时间时分秒与秒数的互相转换>http://www.cnblogs.com/gayhub/p/6154707.html 提到了把时间转成秒数的方法, 这篇写写转换成秒数后 ...

  3. Spark的WorkCount的例子

    之前为了搭建scala开发spark的环境花了几天的时间,终于搞定了,具体可以参考:http://www.cnblogs.com/ljy2013/p/4964201.html   .下面就是用一个示例 ...

  4. Object.notifyAll()

    void java.lang.Object.notifyAll() Causes all threads which are waiting on this object's monitor (by ...

  5. 《C++primer》v5 第5章 语句 读书笔记 习题答案

    5.1 空语句只有一个";".如果什么也不想做可以使用空语句. 5.2 用花括号{}括起来的叫块,也叫复合语句.有多条语句作用在同一个作用域时,需要用花括号括起来. 5.3 降低了 ...

  6. web 调用WCF 每次都要重新编译才能正常使用 终于解决了

    项目中不知从何时起出现了个奇怪的问题,每次运行web都要全部重新编译解决方案,否则单独编译web,总是会出现WCF 调用失败的情况(什么无法激活服务,什么协议对地址不可用啊,七七八八的问题),因为这个 ...

  7. 基于css3的轮播效果

    花了一上午来调整页面在ie10上的显示问题,sass编译生成的css文件在ie内核下一直不能正确加载,果然兼容性的问题还需要好好研究.转入正题,用css3实现轮播效果主要是基于css3的framewo ...

  8. iOS-打电话、发短信、发邮件、打开浏览器

    - (IBAction)showAlert:(UIButton *)sender { NSString *phoneNumber=@"18500138888"; NSString ...

  9. MVC之路随记1--Filter的应用

    功能:MVC提供过滤器Filter,使开发者不用复杂的实现AOP而直接用Filter实现同样的功能. 实现:1.定义一个类实现ActionFilterAttribute,重载借口中的方法后在Contr ...

  10. android中所有颜色大全

    < ?xml version="1.0" encoding="utf-8" ?>       < resources>< colo ...