使用实体框架时,我对需要在哪里定义两个实体之间的关系感到困惑。我觉得每当我寻找例子时,我最终都会从两个不同的角度找到同一事物的例子——依赖→主体,以及主体→依赖。
给定以下实体:
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
s 指向它。Baz
有一个可选的外键Bar
。Baz
可以存在而不Bar
指定。
我将在哪里定义这些关系?在哪里,我的意思是在使用流式 API 时,这些关系将与哪个实体相关联?也许更清楚一点,如果我使用流畅的 API 和EntityTypeConfiguration
类进行绑定,这些将在哪个实体中定义?
我感到困惑的一个例子是,我看到类似这样的答案,说应该在类中定义一对一的virtual
. Baz
因此,在这些实体中,和之间的可选一对一Bar
将是,或类似于:
modelBuilder.Entity<bar>()
.HasOptional(f => f.Baz)
.WithRequired(s => s.Bar);