Я прочитал довольно много сообщений программистов, которые попадают в Невозможно определить действительное упорядочение для зависимых операций. Зависимости могут существовать из-за ограничений внешнего ключа, требований к модели или сохраненных в магазине значений -exception при использовании отношений саморегуляции в 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 быть нулевым.
Вы могли бы рассказать мне, как это сделать?