Например:
class Bar
{
long? ActiveFooId {get;set;}
Foo ActiveFoo {get;set;}
List<Foo> RelatedFoos {get;set;}
}
Если я добавлю новый Foo и хочу, чтобы он также был активным Foo, еще не зная его Id, я просто установил бы навигационную опору, чтобы она указывала на новый Foo:
var bar = new Bar();
var foo = new Foo();
bar.RelatedFoos.Add(foo);
bar.ActiveFoo = foo;
Новый foo добавляется в таблицу Foos в БД, однако активная опора Foo не установлена правильно, чтобы указывать на этот вновь добавленный Foo.
Я бы скорее не нужно сохранять запись дважды (один раз, чтобы добавить foo, а затем снова, чтобы сохранить его в качестве основного foo, как только ему был назначен Id). Это ограничение или я упускаю что-то вроде явной инструкции для сущности?