Я думаю, что вы должны установить для TemplateId детей значение null, прежде чем удалять родителя.
parent.Libraries.Clear();
context.SaveChanges();
Следует удалить связь. Затем вы можете удалить родителя. Дочерние элементы не будут удалены.
Причина: TemplateId - это внешний ключ, указывающий на библиотеки. Это обеспечивает согласованность. Это не позволит вам иметь TemplateId, указывающий на библиотеку (родителя), которая не существует. Таким образом, вы должны отсоединить детей от родителя, прежде чем сможете удалить родителя.