利用EF Core的Join進行多表查詢

2021-09-20 04:45:53 字數 1058 閱讀 8420

話說有這麼一家子,老公養了一條狗,老婆養了乙隻貓。

人表

寵物表

通過表可以知道,寵物通過owner指向主人的id。

問題來了,我要和故事開頭一樣,老公-狗,老婆-貓,對應起來,怎麼查詢呢?

有同學說這還不簡單?兩個遍歷一下不就行了。

首先 取出 list《寵物》集合,再根據寵物的主人id去查詢對應的主人資訊就好了。

如果這樣設計,那麼將會執行3次查詢:

l  查出所有的寵物。

l  查出阿貓的主人。

l  查出阿狗的主人。

資料量不大還好,資料量要是大一點這是非常影響速度的。這時,我們可以用到ef core所有的join方法進行多表查詢。

我的做法是定義了乙個petsdetails的類,其**如下:

public

class

petsdetails

//////

主人名稱

/// public

string ownername

}

用ef 的join方法進行多表查詢:

}執行結果如圖:

成功取到了寵物對應的主人的名稱。

原本需要進行3次查詢的,用了join方法後一次查詢即可取到所需要的結果。我們看看這條sql語句的樣子:

我們看到其實這個需求是ef通過再sql語句中執行inner join實現的。

完整專案**:

EF Core中Join可以進行子查詢

我們來看看下面的 這個 是乙個inner join的ef core查詢,其中用subcategory表inner join了subcategorylanguage表,但是我們需要在subcategorylanguage表上只查詢出其datastatus等於1的行,所以需要用到子查詢 var coun...

如何利用EFCore實現自動化的CodeFirst

前提 在沒有程式設計師進行指導的情況下,實施可以快速進行專案部署 無需執行資料庫指令碼,程式設計師告別繁瑣的資料庫建表操作,以及預設資料的配置 step1 專案引用新增 microsoft.entityframeworkcore step2 在startup.cs檔案中的configureservi...

利用join來更新表

我們發現update子句無法更新包含在from子句中的表,如這樣的兩個表user1和user2 id user name over 1 孫悟空 鬥戰勝佛 2 沙僧 金身羅漢 3 唐僧 功德佛 4 豬八戒 淨壇使者 id user name over 1 孫悟空 成佛 2 牛魔王 被降伏 3 蛟魔王 ...