在EF中,外鍵被稱為導航屬性。
在EF core中,查詢的時候預設是隻查自身而不會去查詢外鍵表的。如果想要讓查詢結果包含外鍵實體,則需要使用include方法來讓查詢結果包含外鍵實體。如
db.StudentDetails.Include(o=>o.Student).Where(s => s.u_SID == 1).FirstOrDefault().Student.Name;
生成sql語句時,使用Include在sql中内連接配接inner jion來查詢,也就可以查詢到外鍵表Student。
如果是使用select語句,當用到外鍵的屬性時,則會自動生成inner join 語句,也就可以查詢到外鍵。如下面的語句,也可以查詢到外鍵表的資料。
db.StudentDetails.Where(s => s.u_SID == 1).Select(s => new { aId = s.u_SID, aName = s.Student.s_Name }).ToList();