一个实体的儿童我有一个实体,称为抓取实体框架
Public Class Equipment
{
int Id;
string EquipmentName;
int? ParentEquipmentId;
}
所以有这样的实体,其中一个设备可以有父子关系。 我想获取父设备以及与之相关设备的所有子项。
我可以在实体上获取ICollection以获取我的儿童吗?
一个实体的儿童我有一个实体,称为抓取实体框架
Public Class Equipment
{
int Id;
string EquipmentName;
int? ParentEquipmentId;
}
所以有这样的实体,其中一个设备可以有父子关系。 我想获取父设备以及与之相关设备的所有子项。
我可以在实体上获取ICollection以获取我的儿童吗?
是的,你需要在你的性对象的子集:
public virtual ICollection<Equipment> Children { get; set; }
,并记得要加.Include(q => q.Children)
到您的LINQ查询加载孩子。
我必须写流利的api,因为这不起作用 – 2014-10-31 12:10:39
你可以但你不需要。尝试让你的实体首先正确加载。然后当你有它的工作添加孩子的集合,并在查询和'包括'来加载儿童。还要记得在构造函数中初始化你的集合。如果这不能回答你的问题,请提供更多详细信息,以便我更好地理解。 – Wojciech 2014-10-31 13:46:21
看来,你需要这样的事情(不准确的语法)
家长和儿童的属性:
public Equipment Parent
{
get
{
return dataContext.DbSet<Equipment>().SingleOrDefault(e=>e.Id == this.ParentEquipmentId);
}
}
public IEnumerable<Equipment> Children
{
get
{
return dataContext.DbSet<Equipment>().Where(e=>e.ParentEquipmentId == this.Id);
}
}
和使用您的Parent属性来得到这个特定父的所有子设备:
this.Parent.Children
如何获得儿童资产的所有儿童 – 2014-11-03 05:30:58
使用var allSubchild = this.Children.SelectMany(c => c.Children); – xwrs 2014-11-03 09:18:46
Public Class Equipment
{
int Id;
string EquipmentName;
int? ParentEquipmentId;
virtual Equipment Parent;
Virtual ICollection<Equipment> Childrens
}
模型绑定使用流畅API
this.HasOptional(e => e.Parent)
.WithMany(e => e.Children)
.HasForeignKey(m => m.ParentEquipmentId);
这将拉动与的
可能重复相关[如何为包括实体框架5个孩子对象的子对象]记录(http://stackoverflow.com/questions/13047845/how- to-include-a-child-objects-child-object-in-entity-framework-5) – Kritner 2014-10-31 11:45:20