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