EF Core Use .Include с отношением Parent-Child в той же таблице - PullRequest
0 голосов
/ 23 октября 2019

У меня есть таблица [dbo].[Product], как

ProductID | Description | OtherProductVariantID

, где OtherProductVariantID - это ProductID из той же таблицы и соответствующего объекта Product

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

И он настраивается через Fluent-API следующим образом:

modelBuilder.Entity<Product>(entity =>
{
        entity.HasOne(d => d.VariantProduct)
                .WithMany(p => p.VariantProducts)
                .HasForeignKey(d => d.OtherProductVariant)
                .HasConstraintName("FK_Product_OtherProductVariant");
});

[На человеческом языке]

Я хотел загрузить сущность Product с

var product = Context.Product
        .Include(p => p.VariantProduct)
        .FirstOrDefault(p => p.ProductID == 12345);

, чтобы мой VariantProduct был доступен для дальнейшей обработки, но он всегда равен нулю.

Что я сделал не так или это как-то невозможно?

Спасибозаранее!

...