天天看點

EF的導航屬性

在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();