собственные ссылки в классе сущностей DataAnnotations core 2.0 - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь перевести это в DataAnnotations

HasOptional(x => x.ParentEntity)
.WithMany(parentEntity => parentEntity.childrenEntities)
.HasForeignKey(childrenEntity => childrenEntity.ParentEntityId)
.WillCascadeOnDelete(false);

Вот моя проблема, у меня есть сущность, которая имеет ссылку на себя.

public class Product
{
    [Key]
    public int ProductId {get; set;}
    public int? ProductParentId {get; set;}
    [ForeignKey("ProductParentId")]
    [InverseProperty("childrenProducts")]
    public virtual Product ParentProduct { get; set; }
    [ForeignKey("ProductParentId")]
    public virtual List<Products> childrenProducts{ get; set; }
}

Но я продолжаю получать сообщения о том, что недопустимые отношения были определены с использованием InversePropertyAttribute и ForeignKeyAttribute и что значения отличаются.

Вот мой стол:

Таблица продуктов

ProductId   ProductName ProductParentId 
1           Test        Null
2           Test 1      1
3           Test 2      1

Что я ожидаю, так это получить продукты и их детей. Есть ли способ сделать это?

Заранее спасибо.

1 Ответ

0 голосов
/ 04 июля 2018

Внешний ключ не принадлежит списку. Используйте InverseProperty вместо

[InverseProperty("ParentProduct")]
public virtual List<Products> childrenProducts{ get; set; }
...