Я прочитал довольно много постов программистов, которые сталкиваются с Невозможно определить действительный порядок для зависимых операций. Зависимости могут существовать из-за ограничений внешнего ключа, требований модели или сгенерированных в хранилище значений - исключение при использовании отношения с самоссылкой в Entity Framework.
Я пытаюсь заставить родителей и детей работать:
public class Category {
public int CategoryId { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
public Category Parent { get; set; }
public List<Category> Children { get; set; }
}
Это конфигурация, которую я использую (Fluent API):
Property(c => c.ParentId).IsOptional();
HasMany(c => c.Children).WithOptional(c => c.Parent).HasForeignKey(c => c.ParentId);
//HasOptional(c => c.Parent).WithMany(c => c.Children).HasForeignKey(c => c.ParentId);
Конфигурации HasMany () и HasOptional () приводят к исключению «Невозможно определить правильный порядок для зависимых операций ...», когда я пытаюсь сохранить новую категорию, подобную этой:
context.Categories.Add(new Category { Name = "test" });
Я не понимаю, почему EF не вставляет категорию с нулевым parentId. База данных допускает нулевой внешний ключ ParentId.
Не могли бы вы сказать мне, как это сделать?