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