Внесение/изменение и удаление заказов в Entity Framework зависит от многих факторов в Entity Framework.
Например, если вы вставляете новый продукт в новую категорию, мы должны добавить Категорию перед Продуктом.
Это означает, что если у вас есть большой набор изменений, есть ограничения локального порядка, которые мы должны удовлетворить в первую очередь, и действительно, это то, что мы делаем.
Порядок, который вы делаете в контексте, может противоречить этим правилам. Например, если вы сделаете это:
ctx.AddToProducts(
new Product{
Name = "Bovril",
Category = new Category {Name = "Food"}
}
);
эффект, который добавляется продукт (в контексте), а затем, когда мы ходим граф добавить категорию тоже.
т.е. порядка вставки в контексте:
Product
Category
, но из-за ограничений ссылочной целостности мы должны заново заказ как это, прежде чем вставить в базу данных:
Category
Product
Так что это вид локального переупорядочения не является предметом переговоров.
Однако, если таких локальных зависимостей нет, вы можете теоретически сохранить упорядочение. К сожалению, в настоящее время мы не отслеживаем «когда» в контекст добавлено что-то, и по соображениям эффективности мы не отслеживаем объекты, чтобы сохранить структуры, подобные спискам. В результате мы не можем сохранить порядок несвязанных вставок.
Однако мы обсуждали это совсем недавно, поэтому я очень хочу увидеть, насколько это важно для вас?
Надеется, что это помогает
Alex
Программа Entity Framework Manager Team
Почему порядок вставки в базу данных SQL имеет значение? –
Порядок вставки не имеет значения, однако порядок первичных ключей делает. – Wouter