gpt4 book ai didi

c# - Fluent API HasXXX 与 WithXXX 方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:39 25 4
gpt4 key购买 nike

我正在研究如何从这里使用 Fluent API:

http://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-first.aspx

它表示以下 1-Many 关系是同一件事:

modelBuilder.Entity<Student>()
.HasRequired<Standard>(s => s.Standard)
.WithMany(std => std.Students)
.HasForeignKey(std => std.StdId);

modelBuilder.Entity<Standard>()
.HasMany<Student>(std => std.Students)
.WithRequired(s => s.Standard)
.HasForeignKey(s => s.StdId);

从智能感知中,我注意到 HasXXX 方法返回目标类型,而 WithXXX 方法返回父类型。

所以我不明白第一种方法是如何有效的,因为 HasForeignKey 应用于标准而不是学生?

外键应该在 Student 而不是 Standard。

请赐教。

最佳答案

  1. 对于第一个modelBuilder.Entity<Student>().HasRequired<Standard>(s => s.Standard)指定 Student 实体需要 NotNull 标准导航属性并返回 Standard实体。然后你使用 .WithMany(s => s.Students)它指定 Student 的另一端(表示 Standard entity )可以包含许多 Students在学生收藏品中。
  2. 对于第二个,它很简单。 modelBuilder.Entity<Standard>()返回 Standard可以包括很多的实体Students在学生集合属性中。所以你必须使用 .HasMany<Student>(std => std.Students) .这将返回 Student 实体,您必须使用 .HasMany<Student>(std => std.Students) 为其定义约束

关于c# - Fluent API HasXXX 与 WithXXX 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35339618/

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