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表

[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; }
}
View Code

相关文章:

  • 2022-12-23
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
  • 2021-06-19
  • 2022-12-23
猜你喜欢
  • 2021-12-15
  • 2022-02-05
  • 2021-12-22
  • 2022-01-11
  • 2021-10-16
相关资源
相似解决方案