One-to-Many 导航 属性 似乎适用于 Post 但不适用于 get
One-to-Many Navigation Property seems to work for Post but not for get
我是 Entity Framework 的新手,我正在尝试创建一对具有 one-to-many 关系的实体 class。我找到的教程和文章只是告诉您如何设置这两个 classes。我按照他们的指示进行了验证 child objects 确实自动将外键设置为 parent 键的值,这是正确的,并且上下文中的 SaveChanges 有效(或不给一个错误)。但是当我获取时,集合为空。
我想我缺少一些教程和文章认为理所当然需要做的事情。我是否需要做些什么来确保 parent class 中的 ICollection 被填充?
这是 Parent 实体:
public class Character
{
[Key]
public string Id { get; private set; }
...
public virtual ICollection<Fault> Faults { get; set; }
}
这是我的 child:
public class Fault
{
[Key]
[DatabaseGenerated( DatabaseGeneratedOption.Identity )]
public string FaultId { get; set; }
public string FaultName { get; set; }
public string CharacterId { get; set; }
public virtual Character Character { get; set; }
}
在我的上下文中,我添加了:
public DbSet<Character> Characters { get; set; }
public DbSet<Fault> Faults { get; set; }
还有什么需要我做的吗? Post 似乎成功了,但是 Character 的获取并没有给我一个填充的 Faults 集合。我是否必须手动查询故障并构建集合?
如果您说创建有效并且您看到它保存了您的数据文件
然后在查询获取数据时需要包含它
dataSource.Character.Include(x => x.Faults )
我是 Entity Framework 的新手,我正在尝试创建一对具有 one-to-many 关系的实体 class。我找到的教程和文章只是告诉您如何设置这两个 classes。我按照他们的指示进行了验证 child objects 确实自动将外键设置为 parent 键的值,这是正确的,并且上下文中的 SaveChanges 有效(或不给一个错误)。但是当我获取时,集合为空。
我想我缺少一些教程和文章认为理所当然需要做的事情。我是否需要做些什么来确保 parent class 中的 ICollection 被填充?
这是 Parent 实体:
public class Character
{
[Key]
public string Id { get; private set; }
...
public virtual ICollection<Fault> Faults { get; set; }
}
这是我的 child:
public class Fault
{
[Key]
[DatabaseGenerated( DatabaseGeneratedOption.Identity )]
public string FaultId { get; set; }
public string FaultName { get; set; }
public string CharacterId { get; set; }
public virtual Character Character { get; set; }
}
在我的上下文中,我添加了:
public DbSet<Character> Characters { get; set; }
public DbSet<Fault> Faults { get; set; }
还有什么需要我做的吗? Post 似乎成功了,但是 Character 的获取并没有给我一个填充的 Faults 集合。我是否必须手动查询故障并构建集合?
如果您说创建有效并且您看到它保存了您的数据文件
然后在查询获取数据时需要包含它
dataSource.Character.Include(x => x.Faults )