1

 List<Student> list = new List<Student>()
{
new Student(){Name="张同学",Age=,sex="男"},
new Student(){Name="李同学",Age=,sex="男"},
new Student(){Name="王同学",Age=,sex="男"},
new Student(){Name="赵同学",Age=,sex="男"},
};
List<Teacher> list2 = new List<Teacher>()
{
new Teacher(){Name="张老师",Age=,sex="男",position="校长"},
new Teacher(){Name="李老师",Age=,sex="女",position="教导主任"},
new Teacher(){Name="王老师",Age=,sex="男",position="年级主任"},
new Teacher(){Name="赵老师",Age=,sex="女",position="教授"},
};
//多个条件
var a = from m in list
join q in list2
on new { m.Age, Name = m.Name,HAHA = m.sex } equals new { q.Age, Name = q.Name, HAHA = q.sex }
where m.Name != null
select new { m.Name, m.Age };
//一个条件
var b = from m in list
join q in list2 on m.Age equals q.Age
select m;
//类似a
var c = from m in list
join q in list2
on new { m.Age,m.Name} equals new { q.Age,q.Name}
where m.Name != null
select new { m.Name, m.Age };
//查询符合条件a表的数据
var d =
from m in list
join q in list2
on m.Age equals q.Age
select m;
//获取2个表里面的字段
var e =
from m in list
join q in list2
on m.Age equals q.Age
select new RecentInfo()
{
Name = m.Name,
// time = q == null ? null : q.time,
position = q == null ? string.Empty : q.position.ToString()
}; var S = a.ToList();
var S2 = b.ToList();
var S3 = c.ToList();
var S4 = d.ToList();
var S5 = e.ToList(); #region 三张表连表查询
//var query = from m in list
// join q in list2 on m.Age equals q.Age
// join p in list3 on q.Age equals p.Age
// select m.Name;
//var tmp = query.Distinct().AsEnumerable();
//if (tmp != null && tmp.Any())
// return tmp.ToList();
//return new List<string>();
#endregion
// return a.OrderBy(m => m.Name).Skip(pageIndex * pageCount).Take(pageCount).AsEnumerable();//分页

//三张表操作 获取三张表里的字段

 var f =   from a in A
join b in B on a.id equals b.id
join c in C on b.id equals c.id into temp
from t in temp.DefaultIfEmpty()
select new newmodel
{
newmodel.a = a.name,
newmodel.b = b.name,
newmodel.c = t.name
}

或者;

这种方法最后返回的是三个表所有字段用户自己在调用那个位置选择展示数据

 public IEnumerable<T> Get(Func<a类型, b类型, c类型, T> selector)
{
var rec = from a in 表A
join b in 表B on a.字段 equals b.字段
join c in 表C on b.字段 equals c.字段
select selector(a, b, c);
return rec;
}

调用

 var query = Get((a, b, c) => new { id1 = a.id, id2 = b.id, id3 = c.id });

Linq------连表查询的更多相关文章

  1. 探讨mvc下linq多表查询使用viewModel的问题

    最近在开发mvc3的时候发现了一个问题,就是如何在view页面显示多表查询的数据,最简单的办法就是使用viewmodel了,以下本人使用viewmodel来实现多表查询的3中方法, 先贴代码再说: 1 ...

  2. LINQ 联表查询 取count 值

    linq to sql 实现左外部连接:var query=from a in A join b in B on a.ID equals b.aID into ab from a1 in ab.Def ...

  3. ef linq多表查询(三表)

    var ph = (from c in reef.CQICC_CLIENT join v in reef.CQICC_VISIT_CLIENT on c.CLIENT_T_ID equals v.CL ...

  4. LINQ多表查询

    #region Group,Join //只有join,没有into,内联(inner join) //var sql = from c in sdb.Classic // join s in sdb ...

  5. Entity Framework Code First 在Object Join Linq查询时出现全表查询的语句。

    最近一个项目,使用微软的Entity Framework的ORM框架的项目,部署到现场后,出现了系统缓慢,多个客户端的内存溢出崩溃的问题. 打开了SQL Server Profiler(SQL Ser ...

  6. EF中使用linq进行关联查询

    EF使用linq进行多表查询是完全可以的,最后ToList()调用的时候回产生一条分页的sql语句,所以并不是全部查询再分页的.所以不会影响查询的性能 public void TestLinq() { ...

  7. sql 、linq、lambda 查询语句的区别

    LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] Lambda ...

  8. LINQ to Entities 查询语法

    转自: http://www.cnblogs.com/asingna/archive/2013/01/28/2879595.html 实体框架(Entity Framework )是 ADO.NET  ...

  9. 浅谈sql 、linq、lambda 查询语句的区别

    浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...

  10. EF Lambda 多表查询

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mv ...

随机推荐

  1. tp5日志分表

    /** * 记录网站日志 * * @return bool */ public function record() { // 组装数据 $log = self::$param; $log[self:: ...

  2. 利用 vuex 实现一个公用搜索器

    安装 npm i vuex vuex 的使用 先创建好如图所示的文件: 编写 modules 下的 params.js const param = { state: { params: {} }, m ...

  3. 07.Delphi接口的生命周期

    在Delphi的接口中,是不需要释放的,调用完之后,接口的生命周期就结束了,如下面的例子 unit mtReaper; interface type // 定义一个接口 IBase = interfa ...

  4. MVC 实例详解,蛮好的,适合新手

    https://blog.csdn.net/f627422467/article/category/6360437

  5. App与Js交互(三)Android、iOS通用解决方案推荐

    https://www.jianshu.com/p/6224f429ce87 window.navigator.userAgent用来区分设备和浏览器 https://blog.csdn.net/li ...

  6. 项目上线后,遇到IE浏览器不显示大部分组件的问题

    document.addEventListener('touchmove',(evt)=>{ }) 以上是ES6 语法,箭头函数,当然在IE下是不行的啦. 所以改为:ES5语法 document ...

  7. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-pencil

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  8. 【LeetCode】合并两个有序数组

    [问题] 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明:初始化 nums1 和 nums2 的元素数量分别为 m ...

  9. nginx的日志切换

    #touch /usr/local/nginx/sbin/cut_nginx_log.sh #chmod 755  /usr/local/nginx/sbin/cut_nginx_log.sh 下面是 ...

  10. 十六、SAP中查看数据库

    一.我们输入事务代码SE11 二.我们输入数据库表 : “SPFLI” 三.我们可以查看到这个表相关的数据,这个是SAP自带的一个教学案例表. 四.我们点击Display,来查看这个表内容 五.点击查 ...