話說有這麼一家子,老公養了一條狗,老婆養了乙隻貓。
人表
寵物表
通過表可以知道,寵物通過owner指向主人的id。
問題來了,我要和故事開頭一樣,老公-狗,老婆-貓,對應起來,怎麼查詢呢?
有同學說這還不簡單?兩個遍歷一下不就行了。
首先 取出 list《寵物》集合,再根據寵物的主人id去查詢對應的主人資訊就好了。
如果這樣設計,那麼將會執行3次查詢:
l 查出所有的寵物。
l 查出阿貓的主人。
l 查出阿狗的主人。
資料量不大還好,資料量要是大一點這是非常影響速度的。這時,我們可以用到ef core所有的join方法進行多表查詢。
我的做法是定義了乙個petsdetails的類,其**如下:
public用ef 的join方法進行多表查詢:class
petsdetails
//////
主人名稱
/// public
string ownername
}
}執行結果如圖:
成功取到了寵物對應的主人的名稱。
原本需要進行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 蛟魔王 ...