如何使用Entity Framework Core加载相关实体

亚伦

我正在使用Entity Framework Core进行探索,并且在阅读本指南https://docs.efproject.net/zh/latest/platforms/aspnetcore/new-db.html时首先使用代码优先方法,但不同的模型除外。

在EF6中,它的加载是延迟的,我真的很容易拉出相关实体,但是在EF Core中无法正常工作。我想知道如何使它工作,或者是否有工作使它工作。

这是我的两个模型的示例:

public class Team
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Icon { get; set; }
    public string Mascot { get; set; }
    public string Conference { get; set; }
    public int NationalRank { get; set; }

    public List<Game> Games { get; set; }
}

public class Game
{
    public string Id { get; set; }
    public string Opponent { get; set; }
    public string OpponentLogo { get; set; }
    public string GameDate { get; set; }
    public string GameTime { get; set; }
    public string TvNetwork { get; set; }
    public string TeamId { get; set; }

    public Team Team { get; set; }
}

我想为团队获得所有比赛,但截至目前为空。

我决定创建一个Web Api项目,所以我有一个名为TeamsController的控制器,当我向该控制器发出GET请求时,我想获得一个包含游戏相关属性的Games属性的Teams列表。

这是我尝试过的:

[HttpGet]
public async Task<List<Team>> Get()
{
    return await _context.Teams.Include(t => t.Games).ToListAsync();
}

这是JSON结果:

[
  {
    "id": "007b4f09-d4da-4040-be3a-8e45fc0a572b",
    "name": "New Mexico",
    "icon": "lobos.jpg",
    "mascot": "New Mexico Lobos",
    "conference": "MW - Mountain",
    "nationalRank": null,
    "games": [
      {
        "id": "1198e6b1-e8ab-48ab-a63f-e86421126361",
        "opponent": "vs Air Force*",
        "opponentLogo": "falcons.jpg",
        "gameDate": "Sat, Oct 15",
        "gameTime": "TBD ",
        "tvNetwork": null,
        "teamId": "007b4f09-d4da-4040-be3a-8e45fc0a572b"
      }
    ]
  }
]

当我这样做时:

[HttpGet]
public async Task<List<Team>> Get()
{
    return await _context.Teams.ToListAsync();
}

我得到了所有团队,但是Games属性为null。

我希望它将返回数据库中的所有团队以及每个团队的所有游戏。我该如何工作?

霍科斯

延迟加载,目前没有实体框架的核心实现为在此间表示,我建议你看看AutoMapper项目在POCO您想要的结果。因为您想要的将恰好导致n + 1问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Entity Framework Core 获取没有相关实体的实体

来自分类Dev

如何使用Entity Framework + OData发布多个相关实体?

来自分类Dev

如何在Entity Framework Core 1.0.1原始查询中包含相关实体?

来自分类Dev

Entity Framework Core - 如何处理相关实体映射和保存

来自分类Dev

在Entity Framework中使用相关实体更新分离的实体

来自分类Dev

如何结合使用“ AsNoTracking”方法在EF Core中加载实体和显式加载相关实体

来自分类Dev

如何使用Entity Framework代码优先从数据库中删除所有相关实体

来自分类Dev

使用Include加载相关数据实体ef Core 3.1

来自分类Dev

使用 Entity Framework 6 插入断开的相关实体

来自分类Dev

Entity Framework Core 过滤相关实体并获得每组前 2 名

来自分类Dev

在 Entity Framework 中使用预先加载时,如何知道是否包含相关数据?

来自分类Dev

如何使用Entity Framework将相关实体更改为另一个现有实体

来自分类Dev

如何使用Entity Framework Core删除没有外键的相关数据

来自分类Dev

IEquatable中断了Entity Framework实体的加载

来自分类Dev

如何快速加载相关实体

来自分类Dev

如何使用Entity Framework显式加载映射表?

来自分类Dev

如何使用Entity Framework Core配置“身份”列?

来自分类Dev

如何有效使用Entity Framework Core?

来自分类Dev

如何使用Entity Framework Core为父树设计建模?

来自分类Dev

如何有效使用Entity Framework Core?

来自分类Dev

如何在 Entity Framework Core 1.1 中使用 mssqllocaldb?

来自分类Dev

如何在Visual Studio 2019中使用Entity Framework Core将实体模型添加到.Net Core ClassLibrary?

来自分类Dev

使用Entity Framework Core数据库优先方法,如何将我的实体与基础结构层分开?

来自分类Dev

如何在不延迟加载Entity Framework的情况下加载嵌套实体?

来自分类Dev

使用Entity Framework 6.0删除实体

来自分类Dev

使用Entity Framework 6.0删除实体

来自分类Dev

如何使用 ASP.NET Core、Identity Framework 和 Entity Framework 显示特定用户创建的内容

来自分类Dev

使用DTO在Entity Framework中延迟加载

来自分类Dev

插入/添加后在Entity Framework中强制重新加载实体

Related 相关文章

  1. 1

    Entity Framework Core 获取没有相关实体的实体

  2. 2

    如何使用Entity Framework + OData发布多个相关实体?

  3. 3

    如何在Entity Framework Core 1.0.1原始查询中包含相关实体?

  4. 4

    Entity Framework Core - 如何处理相关实体映射和保存

  5. 5

    在Entity Framework中使用相关实体更新分离的实体

  6. 6

    如何结合使用“ AsNoTracking”方法在EF Core中加载实体和显式加载相关实体

  7. 7

    如何使用Entity Framework代码优先从数据库中删除所有相关实体

  8. 8

    使用Include加载相关数据实体ef Core 3.1

  9. 9

    使用 Entity Framework 6 插入断开的相关实体

  10. 10

    Entity Framework Core 过滤相关实体并获得每组前 2 名

  11. 11

    在 Entity Framework 中使用预先加载时,如何知道是否包含相关数据?

  12. 12

    如何使用Entity Framework将相关实体更改为另一个现有实体

  13. 13

    如何使用Entity Framework Core删除没有外键的相关数据

  14. 14

    IEquatable中断了Entity Framework实体的加载

  15. 15

    如何快速加载相关实体

  16. 16

    如何使用Entity Framework显式加载映射表?

  17. 17

    如何使用Entity Framework Core配置“身份”列?

  18. 18

    如何有效使用Entity Framework Core?

  19. 19

    如何使用Entity Framework Core为父树设计建模?

  20. 20

    如何有效使用Entity Framework Core?

  21. 21

    如何在 Entity Framework Core 1.1 中使用 mssqllocaldb?

  22. 22

    如何在Visual Studio 2019中使用Entity Framework Core将实体模型添加到.Net Core ClassLibrary?

  23. 23

    使用Entity Framework Core数据库优先方法,如何将我的实体与基础结构层分开?

  24. 24

    如何在不延迟加载Entity Framework的情况下加载嵌套实体?

  25. 25

    使用Entity Framework 6.0删除实体

  26. 26

    使用Entity Framework 6.0删除实体

  27. 27

    如何使用 ASP.NET Core、Identity Framework 和 Entity Framework 显示特定用户创建的内容

  28. 28

    使用DTO在Entity Framework中延迟加载

  29. 29

    插入/添加后在Entity Framework中强制重新加载实体

热门标签

归档