У меня есть две сущности: Parent
и Child
; каждый родитель может иметь не более двух дочерних ссылок. Я настроил свои сущности следующим образом:
class Parent
{
[Key]
public int ParentId { get; set; }
public int PrimaryChildId{ get; set; }
public Child PrimaryChild { get; set; }
public int SecondaryChildId { get; set; }
public Child? SecondaryChild { get; set; }
// remaining properties
}
class Child
{
[Key]
public int ChildId { get; set; }
public int ParentId { get; set; }
public Parent Parent {get; set; }
// remaining child properties
}
В DbContext.OnModelCreating
у меня есть этот код:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Parent>(builder =>
{
builder.HasOne(p => p.PrimaryChild);
builder.HasOne(p => p.SecondaryChild);
});
}
Этого недостаточно для выполнения sh того, что я ' Я пытаюсь достичь здесь. Я получаю сообщение об ошибке:
Невозможно определить отношение, представленное свойством навигации 'Child.Parent' типа 'Parent'. Либо настройте отношение вручную, либо игнорируйте это свойство, используя атрибут «[NotMapped]», либо используя «EntityTypeBuilder.Ignore» в «OnModelCreating»
Я пытался установить отношение из Child
, но я получаю разные ошибки, потому что это заставляет меня установить два отношения для одного свойства. Я не хочу, чтобы у моего ребенка было два свойства навигации, если я знаю, что одновременно будет использоваться только одно, как это могло бы привести к сбивающей с толку модели.
Я немного искал в inte rnet , но мне не повезло найти отношения, которые установлены таким образом.