efcore 更新关联表_.NetCore中EFCore的使用整理(二)-关联表查询

EF常用处理关联加载的方式有3中:延迟加载(Lazy Loading)、贪婪加载 (Eager Loading)以及显示加载。一、EF Core 1.11.当前的版本,还不支持延迟加载(Lazy Loading),不将来是否支持2.目前支持贪婪加载:使用Include加载关联表 的数据,这种方式 使用一条Join的 Sql语句进行查询。3.贪婪加载的优势在于仅执行1次SQL查询即返回所需要的...
摘要由CSDN通过智能技术生成

EF常用处理关联加载的方式有3中:延迟加载(Lazy Loading)、贪婪加载 (Eager Loading)以及显示加载。

一、EF Core  1.1

1.当前的版本,还不支持延迟加载(Lazy Loading),不将来是否支持

2.目前支持贪婪加载:使用Include加载 关联表 的数据,这种方式 使用一条Join的 Sql语句进行查询。

3. 贪婪加载的优势在于仅执行1次SQL查询即返回所需要的结果。但使用JOIN查询在数据库记录条数较多时,多条简单的SQL查询往往比一条复杂的JOIN查询效率要好。

Include语句可以在 一次查询中使用多次 :

ctx.Categories

.Include(c => c.Products)

.Include(c => c.News);

4.限制加载的方式暂时忽略使用。

二、EF Core 中主外键设置

1.使用数据注释,DataAnnotations模式,这种方式适合Code First或者说手写实体类和自定义主外键 关联。

Menu表

961ddebeb323a10fe0623af514929fc1.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

[Table("Menu")]

public partial class Menu

{

[Key]

public int MenuID { get; set; }

public string MenuName { get; set; }

public string LinkUrl { get; set; }

public DateTime AddTime { get; set; }

public int SortNumber { get; set; }

public int ModelID { get; set; }

[ForeignKey("ModelID")]

public virtual Model Model { get; set; }

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

Model表

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值