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的朋友来说还是比较实用,也比较容易接受的东西 ...
随机推荐
- tortoisegit使用密钥连接服务器(转)
目录 [hide] 1 使用putty的密钥 1.1 生成putty密钥 2 在服务器上添加openssh公钥 3 在tortoisegit上使用密钥 4 putty密钥与openssh密钥转化 5 ...
- Android使用surface直接显示yuv数据(三)
在本文中,Java创建UI和关节JNI经营层surface直接显示yuv数据(yv12).发展环境Android 4.4,驰A23平台. package com.example.myyuvviewer ...
- SSIS从理论到实战,再到应用(1)----创建自己的第一个包
原文:SSIS从理论到实战,再到应用(1)----创建自己的第一个包 其实,如果你使用sql2008的导出导入工具的时候,你就已经在使用包了. 目标:使用sql2008 导入导出工具,导入excel数 ...
- awk学习总结(两) How awk works and awk CMD in a file
测试文件names Tom Savage 100 Molly Lee 200 John Doe 300 $0 代表file的整行; $1,第一列;$2,第二列...... $ awk '/Tom/{p ...
- zoj 3210 A Stack or A Queue? (数据结构水题)
A Stack or A Queue? Time Limit: 1 Second Memory Limit: 32768 KB Do you know stack and queue? ...
- Asp.Net超时问题汇总
在数据库或者请求操作时,如果选择的时间段过短或操作数据量过大,就会遇到"请求超时"的的问题,网络上提供很多解决方案,但普遍不完善,根据个人经验及参考网络解决方案,先将其汇总如下: ...
- javascript之Style物
Background 属性 属性 描写叙述 background 在一行中设置全部的背景属性 ...
- C#二维码生成
C#二维码生成,这里使用开源的ThoughtWorks.QRCode.dll库. 1.下载ThoughtWorks.QRCode.dll库文件,并引用到项目中. 2.创建QRCodeHandler.c ...
- HDU多赛学校9 HDU4969 Just a Joke 【数学积分】
数学题目 意甲冠军:的男孩向圆上的女孩跑去,保持男孩女孩圆心在同一条直线上.这过程中,男孩女孩均匀速 给出男孩女孩速度,圆的半径,男孩最长能跑的距离 问男孩是否能跑到女孩那里 能够用积分来解这道题,我 ...
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔
package sundemo2; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public ...