LINQ連線查詢

2021-09-09 04:05:04 字數 2366 閱讀 5437

用linq進行連線查詢,感覺挺彆扭,還是用sql比較舒服,故記錄一下,以備後用。

先把資料列出來

class

pet

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 in

persons

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 in

pets

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 in

persons

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 in

persons

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 ...