实体框架包含调用无法获取子对象

时间:2017-04-06 07:20:40

标签: .net entity-framework entity-framework-6

1-> N关系如下。

部分 - >表

表 - >轮

回合 - >出价

在WebAPI控制器中,我传入一个POST的出价对象,它被完美保存(甚至在保存后传回客户端,所以我假设这不是问题)。

稍后,在另一个控制器中,我尝试检索一个Round对象,并按如下方式关联N Bids:

var query = db.Rounds.Where(r => r.SectionId == section &&
        r.Number == roundId &&
        r.TableNumber == table)
        .Include(r => r.Section)
        .Include(r => r.Table)
        .Include(r => r.Bids);

我成功获得了Round对象,以及它关联的Table和Section引用,但无论我做什么,我都没有Bid对象,即使我之前可以看到成功保存,并且看到它数据库使用VS。

我知道有一些奇怪的内容涉及Include指令在SQL中出现的方式,但我没有尝试过任何工作。

投标对象的相关部分如下(是的,命名方案很可怕 - 长篇故事):

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key, Column(Order = 0)]
public int Id { get; set; }

[Column("Section", Order = 1)]
[ForeignKey("Round")]
public int SectionId { get; set; }

[Column("Table", Order = 2)]
[ForeignKey("Round")]
public int TableNumber { get; set; }

[Column("RoundNumber", Order = 3)]
[ForeignKey("Round")]
public int RoundNumber { get; set; }

public virtual Round Round { get; set; }

圆形课程遵循

    [Key, Column("Section", Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int SectionId { get; set; }

    [Key]
    [Column("Table", Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int TableNumber { get; set; }


    [Key]
    [Column("RoundNumber", Order = 2)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Number { get; set; }

    public virtual ICollection<Bid> Bids { get; set; }

    [ForeignKey("Section")]
    public virtual Section Section { get; set; }

    [ForeignKey("TableNumber")]
    public virtual Table Table { get; set; }

0 个答案:

没有答案