當使用實體框架時,我對我需要在兩個實體之間定義關係的位置感到困惑。我覺得每當我尋找例子時,我最終都會從兩個不同的角度找到同一事物的例子 - 依賴→本金,以及本金→依賴。我是否定義了依賴關係或主體上兩個實體之間的關係?
考慮下列實體:
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和綁定類,那麼這些實體會在哪些實體中定義?
爲什麼我很困惑的一個例子是因爲我看到像this one這樣的答案,表示應該在類中定義與virtual
一對一的答案。因此,在這些實體中,可選一到一個Baz
和Bar
之間會或類似的東西:
modelBuilder.Entity<bar>()
.HasOptional(f => f.Baz)
.WithRequired(s => s.Bar);