用linq進行連線查詢,感覺挺彆扭,還是用sql比較舒服,故記錄一下,以備後用。
先把資料列出來
classpet
public
string ownername
}class
person
public
string lastname
}
listpersons = new list(),new person(),
new person(),
new person()
};list
pets = new list()
,new pet(),
new pet(),
new pet(),
new pet()
};
左連線
var p = from person inpersons
join pet
inpets
on person.firstname equals pet.ownername into petsorempty
from pet in
petsorempty.defaultifempty()
select
new;
foreach (var i in
p) console.writeline(" :
", i.firstname, i.lastname, i.petname);
//結果為:
//zhang san:cat
//li si:
//wang wu:monkey
//zhao liu:
右連線
var p = from pet inpets
join person
inpersons
on pet.ownername equals person.firstname into perdonsorempty
from person in
perdonsorempty.defaultifempty()
select
new;
foreach (var i in
p) console.writeline(" :
", i.firstname, i.lastname, i.petname);
//結果為:
//zhang san:cat
//:dog
//wang wu:monkey
//:panda
//:king kong
下面列舉的連線條件不是乙個單純的相等條件,會帶有and 和 or
帶and的連線
var p = from person inpersons
join pet
inpets
on new equals
new into petsorempty
from pet in
petsorempty.defaultifempty()
select
new;
foreach (var i in
p) console.writeline(" :
", i.firstname, i.lastname, i.petname);
//結果為:
//zhang san:
//li si:
//wang wu:
//zhao liu:
下面這個例子個人覺得不是沒用到連線,但也能達到連線的效果,若有哪位大師知道真正帶or的連線查詢,請指點
var p = from person inpersons
from pet in
pets
.where(inner => person.lastname == inner.ownername ||
person.firstname ==inner.ownername).defaultifempty()
select
new;
foreach (var i in
p) console.writeline(" :
", i.firstname, i.lastname, i.petname);
//結果為:
//zhang san:cat
//li si:dog
//wang wu:monkey
//zhao liu:panda
Linq多表連線查詢
在 linq 中,join 子句可以實現 3 種型別的聯接分別是內部聯接 分組聯接和左外部聯接。1 內部連線 相對於sql join inner join 格式 join element in datasource on exp1 equals exp2 int intary1 建立整數陣列 int...
linq 之左連線
listarticlelist articlerepository.getallarticle listuserlist usersrepository.getallusers 使用者表左連線文章表 var usersleftjoin from u in userlist join a in art...
LINQ 之 基本 LINQ 查詢操作
在 linq 查詢中,第一步是指定資料來源。像在大多數程式語言中一樣,必須先宣告變數,才能使用它。在 linq 查詢中,最先使用from子句的目的是引入資料來源和範圍變數。queryallcustomers 是 ienumerable型別 資料來源 customers 和範圍變數 cust var ...