2

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

1 に答える 1

3

私はここで私の答えを見つけたと思います...自己参照テーブル

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

もともと私はサブコンポーネントに外部キーを追加しようとしていましたが、実際には親関係にFKが必要でした。今、私のEFクエリは次のようになります...

return _db.Components.Where(x => x.ParentComponent == null).ToList();
于 2013-02-17T03:02:50.057 に答える