Определить ли отношения между двумя объектами на зависимом или основном субъекте?
Когда я использую Entity Framework, я не понимаю, где мне нужно определить отношения между двумя объектами. Я чувствую, что всякий раз, когда я ищу примеры, я в конечном итоге нахожу примеры одного и того же с двух разных точек зрения - зависимой → главной, а также главной → зависимой.
Даны следующие лица:
class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; set; }
}
class Bar
{
public int Id { get; set; }
public Foo Foo { get; set; }
public virtual Baz { get; set; }
}
class Baz
{
public int Id { get; set; }
public Bar Bar { get; set; }
}
У нас есть несколько сценариев здесь.Foo
имеет многоBar
указывает на это.Baz
имеет дополнительный внешний ключ дляBar
. Baz
может существовать безBar
указано.
Где бы я определил эти отношения? Где, когда я использую свободный API, я имею в виду, к какому объекту будут относиться эти отношения? Может быть, чтобы сделать это более понятным, если бы я использовал свободный API иEntityTypeConfiguration
классы для привязки, для какого объекта они будут определены?
Пример того, почему я запутался, потому что я вижу ответы вродеэтот которые говорят, что один-к-одному должен быть определен в классе сvirtual
, Таким образом, в этих объектах необязательный один к одному междуBaz
а такжеBar
будет или что-то похожее на:
modelBuilder.Entity<bar>()
.HasOptional(f => f.Baz)
.WithRequired(s => s.Bar);