Да, это возможно, но вы должны сделать это в правильном порядке.Самый простой способ:
var order1 = new Order { Id = 1 };
context.Orders.Attach(order1); // Now context knows the order and it tracks it as unchanged
var customer = new Customer();
context.Customers.AddObject(customer); // Now context knows the customer and it tracks it as a new
customer.Orders.Add(order1); // Now context knows about new relation between new customer and existing order
Если вы сделаете это, как показано в примере, вы позвоните:
context.Customers.AddObject(customer);
, и контекст отследит клиента и все связанные заказы как новыйпоэтому вам придется вручную изменять состояние всех заказов на неизменные, чтобы избежать дублирования вставок:
foreach (var order in customer.Orders)
{
if (order.Id != 0)
{
context.ObjectStateManager.ChangeObjectState(order, EntityState.Unchagned);
}
}