加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – EF6 Linq Query.仅包含返回子表的第一个条目

发布时间:2020-12-15 21:03:54 所属栏目:百科 来源:网络整理
导读:我想检索一个给定的口袋妖怪的邂逅列表,因为口袋妖怪可以在很多地方遇到,所以我一直在尝试很多变种 var currentPokemon = _context.Pokemon .Where(mon = mon.Id == id) .Include(mon = mon.Encounters) .FirstOrDefault(); 结果是一个包含所有相关数据的Pok
我想检索一个给定的口袋妖怪的邂逅列表,因为口袋妖怪可以在很多地方遇到,所以我一直在尝试很多变种

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

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

enter image description here

看看这个数据库,大约有20次遇到caterpie,我想要访问所有这些,但只是得到了它.

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; }
 }

邂逅的样子:

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

Db数据:

enter image description here

我在这里误解了什么?

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读