EF的导航属性

Posted dayang12525

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

 

以上是关于EF的导航属性的主要内容,如果未能解决你的问题,请参考以下文章

EF 6 代码首先,在导航属性上使用包含更改外键 ID 会导致“发生引用完整性约束违规”错误

EF codefirst:我应该初始化导航属性吗?

没有导航属性的EF Code First外键

如何通过WCF SOAP服务访问EF导航属性?

EF导航属性

Include路径表达式必须引用在类型EF上定义的导航属性。使用关系表[duplicate]