gpt4 book ai didi

c# - EF6 Linq 查询。仅包括返回子表的第一个条目

转载 作者:行者123 更新时间:2023-11-30 12:56:26 25 4
gpt4 key购买 nike

我想检索给定口袋妖怪的遭遇列表,因为口袋妖怪可以在很多地方遇到,所以我一直在尝试多种变体

var currentPokemon = _context.Pokemon
.Where(mon => mon.Id == id)
.Include(mon => mon.Encounters)
.FirstOrDefault();

结果是一个包含所有相关数据的 Pokemon 对象,但只有第一次遭遇被检索并放入一个集合中,结果如下:

enter image description here

查看数据库,caterpie 大约有 20 次遭遇,我想访问所有这些,但只能获取一次。

Pokemon 类是什么样的(省略不相关的字段):

[Table("pokemon")]
public partial class Pokemon {
public Pokemon()
{
Encounters = new HashSet<Encounters>();
}
[Column("id")]
public long Id { get; set; }
[Required]
[Column("identifier", TypeName = "VARCHAR(79)")]
public string Identifier { get; set; }
.
.
.

[InverseProperty("Pokemon")]
public virtual ICollection<Encounters> Encounters { get; set; }
}

Encounters 是什么样的:

public partial class Encounters {
.
.
.
[ForeignKey("PokemonId")]
[InverseProperty("Encounters")]
public virtual Pokemon Pokemon { get; set; }
}

数据库数据:

enter image description here

我在这里误解了什么?

最佳答案

我认为这是因为您正在调用 .FirstOrDefault(),它只获取第一项。您可以省略它并添加 .ToList() 吗?此外,var currentPokemon 似乎不是一个好的变量名。你说你想要一个 Encounters 列表,对吧? var pokemonEncounters 怎么样?

关于c# - EF6 Linq 查询。仅包括返回子表的第一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40896802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com