Коллекция вложенных объектов - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть сценарий, в котором я пытаюсь создать расширяемую иерархию вложенной коллекции одного типа для определенной цели, и я использую EF Core 2.2 .

* 1004.*

Цель состоит в том, чтобы сохранить такие данные, как:

|-GrandParent Group
   -Parent Group
   |--Child1 Group
      ---GrandChild1 Group
   |--Child2 Group
       ---GrandChild2 Group

ОШИБКА

{System.InvalidOperationException: No suitable constructor found for entity type 'Group'. The following constructors had parameters that could not be bound to properties of the entity type: cannot bind 'guid' in 'Group(Guid guid)'.
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConstructorBindingConvention.Apply(InternalModelBuilder modelBuilder)
   at Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.ImmediateConventionScope.OnModelBuilt(InternalModelBuilder modelBuilder)

Не могли бы вы дать мне знать, как мне этого добиться?

1 Ответ

0 голосов
/ 21 февраля 2019

Проблема не имеет ничего общего с вложенной коллекцией, кроме конструктора сущностей, и не воспроизводится с образцом из вопроса.

Но сообщение об исключении

Не подходитнайден конструктор для типа объекта «Группа».Следующие конструкторы имеют параметры, которые не могут быть связаны со свойствами типа сущности: невозможно связать ' guid ' в 'Группе (Guid guid )'.

указывает, что в вашем реальном коде вы использовали

public Group(Guid guid):base(guid)

Проблема заключается в имени параметра guid (вместо id).Как объяснено в Типы сущностей с конструкторами (внутри Некоторые вещи, на которые следует обратить внимание ):

Типы и имена параметров должны соответствовать типам и именам свойств, кромеэти свойства могут быть в Pascal, а параметры - в верблюжьем.

В этом случае свойство называется Id, поэтому параметр должен называться id, как в сообщении.

...