Linq无聊练习系列4--join练习
/**************join 练习*******************/
//对于1对多关系
var list =from c in ctx.T_Student
from s in c.T_Score
where c.stuName=="黄阳"
select s;
//也可以间接的通过表关联其它表,这个结果和上边的查询结果相同
var list1 = from s in ctx.T_Score
where s.T_Student.stuName=="黄阳"
select s;
//多对多关系,他们之间的关系是1:M:1
var list2 = from s in ctx.T_Cource
from c in s.T_Score
select new {
s.courceName,
c.score,
c.T_Student.stuName
};
//如果表里边有隶属关系,可以使用自联结,由于表的设计不是很好,所以没有包括这种情况
//双向链接
var list3 = from s in ctx.T_Student
join t in ctx.T_Score
on s.stuNumber
equals t.stuNumber
into g
select new {
stuName = s.stuName,
score = g.Sum(k=>k.score)
};
//三向链接
var list4 = from s in ctx.T_Score
join c in ctx.T_Cource
on s.courceNumber
equals c.courceNumber into temp1
join t in ctx.T_Student
on s.stuNumber
equals t.stuNumber into temp2
select new {
Score = s.score,
Name = temp1.Count()
};
//左外部链接
var list5 = from s in ctx.T_Student
join c in ctx.T_Score
on s.stuNumber
equals c.stuNumber
into temp1
from k in temp1.DefaultIfEmpty()
select new
{
stuName = s.stuName,
sumScore = k.score
};
//投影的let操作
var list6 = from s in ctx.T_Student
join c in ctx.T_Score
on s.stuNumber
equals c.stuNumber into temp1
let studentInfo = s.stuName +s.stuSex
from k in temp1
select new {
stuNumber=s.stuNumber,
CoreOfStudents = k.score,
studentInfomation = studentInfo
};
//使用组合健来表示多表之间的关系 ,这个由于表中设计时候,基本只有一个主键,没有用到联合主键
//一侧可为空另一侧不能为空的链接
var list7 = from s in ctx.T_Student
join c in ctx.T_Score
on Convert.ToInt32(s.stuNumber)
equals (int ?)Convert.ToInt32(c.stuNumber) into temp1
select new {
stuName = s.stuNumber,
sumCore = temp1.Sum(f=>f.score)
};
Linq无聊练习系列4--join练习的更多相关文章
- Linq无聊练习系列8---开放式并发事务,null和 DateTime,string操作练习
/*********************开放式并发事务,null和 DateTime,string操作练习**********************************/ //所谓并发,就是 ...
- Linq无聊练习系列6--Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习
/*********************Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作练习******* ...
- Linq无聊练习系列5--OrderBy ,Groupby练习
/**************OrderBy ,Groupby练习*******************/ //按学生的总分数按降序排列排序 ...
- Linq无聊练习系列1--where练习
linq主要有3种,linq to sql,linq to XML,Linq to Object linq to sql. 这里没有通过相应的类,生成相应的数据库中的表.没有用流行的编码优先. 只是为 ...
- Linq无聊练习系列7----Insert,delete,update,attach操作练习
/*********************Insert,delete,update,attach操作练习**********************************/ ...
- Linq无聊练习系列3--聚合函数练习
/**************聚合函数 练习*******************/ //求学生的总数量 var list = ctx.T_Student. ...
- Linq无聊练习系列2--select/distinct练习
void dataBindByWhere() { /**************select/distinct 练习*******************/ //获 ...
- Linq 多表连接查询join
在查询语言中,通常需要使用联接操作.在 LINQ 中,可以通过 join 子句实现联接操作.join 子句可以将来自不同源序列,并且在对象模型中没有直接关系(数据库表之间没有关系)的元素相关联,唯一的 ...
- LINQ TO SQL 中的join(转帖)
http://www.cnblogs.com/ASPNET2008/archive/2008/12/21/1358152.html join对于喜欢写SQL的朋友来说还是比较实用,也比较容易接受的东西 ...
随机推荐
- NSOJ Minimum Transport Cost
These are N cities in Spring country. Between each pair of cities there may be one transportation tr ...
- hdu 3460 Ancient Printer
Problem Description The contest is beginning! While preparing the contest, iSea wanted to print the ...
- js的逻辑 OR 运算符- ||
逻辑or运算大家都很熟悉,都会用.但是在javascript中用的更多,用的更妙.有时候用它来解决兼容问题特别方面.简洁. 比如获取鼠标对象.在 Internet Explorer 里, event ...
- 无废话WCF入门教程四[WCF的配置文件]
一.概述 配置也是WCF编程中的主要组成部分.在以往的.net应用程序中,我们会把DBConn和一些动态加载类及变量写在配置文件里.但WCF有所不同.他指定向客户端公开的服务,包括服务的地址.服务用于 ...
- 私人定制javascript中函数小知识点
函数的定义 首先在javascript中,函数就是对象,程序可以随意操控它们.比如,可以给它们设置属性,甚至调用它们的方法.函数使用function关键字来定义.它既可以用在函数定义表达式,也可以用在 ...
- oracle处理节点之间的父子关系
通常当与树的结构之间的关系处理,这是一个很复杂的事情,我们可以通过程序代码去逐层遍历父或子节点,这样做的缺点是很明显,效率不高,操作复杂性是比较大的.而当我们使用Oracle当数据库,我们可以有一个简 ...
- [Phonegap+Sencha Touch] 移动开发34 gem安装compass,不编译scss,怎么办?
很多人已经发现,今天,该命令 "gem install compass" 安装compass,正在使用 "compass compile" 编scss的时间将报 ...
- 关于Java的对象、数组、String类的具体用法
对象的行为: 1.内存分配(栈和堆的区别) 栈:保存局部变量的值(用来保存基本数据类型的值:保存类的实例的引用) 对:用来存放动态产生的数据,比如new出来的对象 2.调用方法 方法返回一个值.方法不 ...
- CSS3+HTML5特效5 - 震动的文字
先看效果(把鼠标移上去看看) abcd 这个效果很简单,就是移动文字的位置模拟出震动的效果. Css <style> @-webkit-keyframes shake { 0%{ -web ...
- Linux 经常使用 性能 检测 命令 说明
1.uptime [root@smgsim02 ~]# uptime 15:08:15 up 98 days, 4:19, 2 users, load average: 0.07, 0.29, ...