EF 属性类型的定义与left right join的关系

先分析外键和导航属性的几种定义情况:

情况外键类型导航属性生成结果备注
1intinnerlinq和lamda 只能生成inner join
2intinner,left 
3int?

linq:left,inner

include:left

linq:当使用左连接方法生成left,默认生成inner

include:只能生成left

4int?inner,left因为没有导航属性,所以只能用lamda
5string

linq:inner,left

include:left

字符主外键时不建议使用DefaultIfEmpty,会多生成一部分
6stringinner,left 

综上分析:

1、int型主外键时,外键不为空表有导航属性,只能生成inner连接,其他情况可以生成inner 、left 和right连接;

2、string型主外键时,可以生成inner,left。

结果:定义外键属性类型时,要弄清是否存在可为空的情况,否则将影响数据的正常查询!

有错误之处请留言指正,谢谢!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值