EF 屬性類型的定義與left right join的關係

先分析外鍵和導航屬性的幾種定義情況:

情況 外鍵類型 導航屬性 生成結果 備註
1 int inner linq和lamda 只能生成inner join
2 int inner,left  
3 int?

linq:left,inner

include:left

linq:當使用左連接方法生成left,默認生成inner

include:只能生成left

4 int? inner,left 因爲沒有導航屬性,所以只能用lamda
5 string

linq:inner,left

include:left

字符主外鍵時不建議使用DefaultIfEmpty,會多生成一部分
6 string inner,left  

綜上分析:

1、int型主外鍵時,外鍵不爲空表有導航屬性,只能生成inner連接,其他情況可以生成inner 、left 和right連接;

2、string型主外鍵時,可以生成inner,left。

結果:定義外鍵屬性類型時,要弄清是否存在可爲空的情況,否則將影響數據的正常查詢!

有錯誤之處請留言指正,謝謝!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章