gpt4 book ai didi

c# - 在自引用表中查找顶级实体

转载 作者:行者123 更新时间:2023-11-30 22:20:33 27 4
gpt4 key购买 nike

在 Entity Framework 中,如何搜索位于 EF 顶层的对象?

如果我有一组具有子组件的子组件。这些子组件可以放置在更大的组件中。

举一个现实世界的例子:假设我们用一台电脑组装一个柜子,而这台电脑有零件。如何找到未安装在机柜中的计算机,或者可能是未安装在计算机中的部件?

public class Component
{
public int Id { get; set; }
public string Model { get; set; }
public string PartId { get; set; }
public DateTime Manufactured { get; set; }
public string SerialNumber { get; set; }
public string ProductType { get; set; }
public string Description { get; set; }
public virtual List<Component> SubComponents { get; set; }
}

最佳答案

我想我在这里找到了答案... Self Referencing Tables

public class Component
{
[Key]
public int Id { get; set; }
public string Model { get; set; }
public string PartId { get; set; }
public DateTime Manufactured { get; set; }
public string SerialNumber { get; set; }
public string ProductType { get; set; }

//Added this...
public int? ParentComponentId { get; set; }
[ForeignKey("ParentComponentId")]
public virtual Component ParentComponent { get; set; }

public virtual List<Component> SubComponents { get; set; }
public string Description { get; set; }
}

最初我试图向子组件添加外键,但实际上我需要父关系上的外键。现在我的 EF 查询看起来像这样......

return _db.Components.Where(x => x.ParentComponent == null).ToList();

关于c# - 在自引用表中查找顶级实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14917480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com