EF Отношения между родителями и детьми

#.net #entity-framework

Вопрос:

Мы обрабатываем очень большие транзакции с использованием EF (понимаем, что EF не лучше всего подходит для крупных транзакций), Пытаясь разбить их на более мелкие пакеты, чтобы сэкономить память/повысить производительность и т. Д… Для этого мы пытаемся сохранить элементы, которые имеют родительские отношения…но без сохранения родителя вместе с элементами (затем мы вручную изменим данные в базе данных). Проблема, с которой мы сталкиваемся, заключается в том, что когда мы это делаем, контекст извлекает все дочерние элементы в базе данных. Есть ли способ сообщить контексту, что нам нужны обновления только для только что добавленных элементов? (Мы хотим избежать запроса всей дочерней таблицы.)

 public class Child
{
    Parent _parent { get; set; }  //parent_key is a foreign key in the child table
    ComplexType _complexType { get; set; }
}

public class MyContext: DbContext 
 {
        public DbSet<Child> Children { get; set; }
 }

 public class Example {

        public void ShowExample(List<Child> bunchOfChildren)
        {
            var context = new MyContext();
            context.Children.Add(bunchOfChildren);
            context.SaveChanges();   //when we just add children (without setting the parent) EF returns EVERY child we've ever saved in the database!!
                                                                //...how can we limit it to the children we just added?
        }
}
 

Комментарии:

1. «EF возвращает КАЖДОГО ребенка» Почему вы решили, что он вообще должен возвращать что-либо, если вы просто добавляете новых? И у тебя неправильный синтаксис. Он даже не будет заполнен. Можете ли вы опубликовать реальный код, пожалуйста, если хотите получить некоторую помощь?