gpt4 book ai didi

entity-framework - 我是否需要使用 Fluent API 配置与 Entity Framework 的关系的双方?

转载 作者:行者123 更新时间:2023-12-03 07:25:58 25 4
gpt4 key购买 nike

我是 Fluent API 的新手。在我的场景中,一名学生可以属于一个年级,而一个年级可以有许多学生。然后,这两个语句完成相同的事情:

modelBuilder
.Entity<Student>()
.HasRequired<Grade>(s => s.Grade)
.WithMany(s => s.Students);

还有:

modelBuilder
.Entity<Grade>()
.HasMany<Student>(s => s.Students)
.WithRequired(s => s.Grade);

我的问题是 - 我应该如何选择一种陈述而不是另一种?或者我需要这两种声明吗?

最佳答案

对于像您这样的双向关系(即,当两端都有导航属性时),这并不重要,您可以使用其中之一(也可以同时使用两者,但不建议这样做)因为它是多余的并且可能导致两者之间不同步)。

当您具有单向关系时,这确实很重要,因为只有With方法具有无参数重载。

假设您没有 Grade.Students 属性。那么你只能使用:

modelBuilder.Entity<Student>()
.HasRequired(s => s.Grade)
.WithMany();

如果您没有 Student.Grade 属性,那么您只能使用:

modelBuilder.Entity<Grade>()
.HasMany(s => s.Students)
.WithRequired();

关于entity-framework - 我是否需要使用 Fluent API 配置与 Entity Framework 的关系的双方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39678754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com