Я пытаюсь обновить сущность, чтобы самостоятельно ссылаться на себя, чтобы создать отношения родитель-потомок.
Обновленная сущность
public class Organisation : FullAuditedEntity<long>
{
...
public virtual long? ParentOrganisationId { get; set; }
[ForeignKey(nameof(ParentOrganisationId))]
public virtual Organisation ParentOrganisation { get; set; }
[InverseProperty(nameof(ParentOrganisation))]
public virtual ICollection<Organisation> SubOrganisations { get; set; }
...
}
Но проблема возникает, когда я пытаюсь запуститьмиграция в БД (Update-Database
), в которой выдается следующая ошибка:
EXECUTE sp_rename @objname = N'dbo.Organisations.OrganisationId', @newname = N'ParentOrganisationId', @objtype = N'COLUMN'
Либо параметр @objname является неоднозначным, либо заявленный @objtype (COLUMN) неверен.
Единственное, что я могу сделать, - это обновить файл миграции напрямую, добавить столбец и удалить переименованное мной имя.Кажется, работает нормально.
//RenameColumn(table: "dbo.Organisations", name: "OrganisationId", newName: "ParentOrganisationId");
AddColumn("dbo.Organisations", "ParentOrganisationId", c => c.Long(nullable: true));
Хотя я думаю, что это сработает, мне любопытно, почему в сгенерированной миграции используется RenameColumn
вместо AddColumn
.
В другом объекте, где я установил те же отношения, похоже, нет проблемы, он не выдает ошибку, упомянутую выше, хотя таблица создается, а не обновляется, как этот объект.
Заранее спасибо.
Я отправлю ответ, если узнаю, почему это происходит.
Сообщите мне, если потребуется какая-либо дополнительная информация, я обновлю соответствующим образом.