一個實體的兒童我有一個實體,稱爲抓取實體框架
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