Вы начинаете со свойства навигации по коллекции:
builder
.HasMany(answer => answer.SubQuestionAnswers)
Остальное зависит от наличия в модели свойства обратной навигации и явного свойства FK.
(A) Исходная модель (без свойства обратной навигации, без явного свойства FK)
.WithOne()
.HasForeignKey("ParentId")
.IsRequired(false);
(B) С добавлением в модель свойства обратной навигации
public virtual AnswerDataModel Parent { get; set; }
это будет:
.WithOne(answer => answer.Parent);
(C) При добавлении в модель свойства explcit FK
public Guid? ParentId { get; set; }
это будет:
.WithOne()
.HasForeignKey(answer => answer.ParentId);
(D) С добавленными в модель свойствами обратной навигации и explcit FK
public virtual AnswerDataModel Parent { get; set; }
public Guid? ParentId { get; set; }
это будет:
.WithOne(answer => answer.Parent)
.HasForeignKey(answer => answer.ParentId);
(HasForeignKey
здесь можно пропустить, потому что это условно)