C# EF核心使用。包含在同一表中的父子关系中

C# EF核心使用。包含在同一表中的父子关系中,c#,.net-core,ef-code-first,asp.net-core-2.0,ef-core-2.0,C#,.net Core,Ef Code First,Asp.net Core 2.0,Ef Core 2.0,我有一个表[dbo].[Product]类似 ProductID | Description | OtherProductVariantID 其中,OtherProductVariantID是同一表的ProductID和相应的产品实体 public class Product { public int ProductID {get; set;} public string Description{get; set;} public int? O

我有一个表
[dbo].[Product]
类似

ProductID | Description | OtherProductVariantID
其中,
OtherProductVariantID
同一表的
ProductID
和相应的产品实体

public class Product
{
        public int ProductID {get; set;}
        public string Description{get; set;}

        public int? OtherProductVariantID {get; set;}
        public virtual Product VariantProduct {get; set;}
        public virtual ICollection<Product> VariantProducts { get; set; }
}
因此,我的VariantProduct可用于进一步处理,但它始终为空

我做错了什么,或者这是不可能的


提前谢谢

您的
OtherProductVariant
实体中有什么?
VariantProduct
是父产品实体,
VariantProducts
是您的子产品集合。检查数据库表以确认这一点。使用下面的类似方法检查这两个选项:var product=\u context.Products.Include(p=>p.VariantProducts)。Include(p=>p.VariantProduct)。FirstOrDefault(p=>p.ProductID==12345);
modelBuilder.Entity<Product>(entity =>
{
        entity.HasOne(d => d.VariantProduct)
                .WithMany(p => p.VariantProducts)
                .HasForeignKey(d => d.OtherProductVariant)
                .HasConstraintName("FK_Product_OtherProductVariant");
});
var product = Context.Product
        .Include(p => p.VariantProduct)
        .FirstOrDefault(p => p.ProductID == 12345);