Entity framework core 一对多关系的Fluent API配置

Entity framework core 一对多关系的Fluent API配置,entity-framework-core,ef-fluent-api,Entity Framework Core,Ef Fluent Api,配置一对多关系时,我通常“仅”从一侧配置关系。但我想知道,从双方配置关系会有什么影响?这是丰富的、模棱两可的还是有意义的影响 public class Student { public int Id { get; set; } public string Name { get; set; } public int CurrentGradeId { get; set; } public Grade Grade { get; set; } } public cla

配置一对多关系时,我通常“仅”从一侧配置关系。但我想知道,从双方配置关系会有什么影响?这是丰富的、模棱两可的还是有意义的影响

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int CurrentGradeId { get; set; }
    public Grade Grade { get; set; }
}

public class Grade
{
    public int GradeId { get; set; }
    public string GradeName { get; set; }
    public string Section { get; set; }

    public ICollection<Student> Students { get; set; }
}
公共班级学生
{
公共int Id{get;set;}
公共字符串名称{get;set;}
public int CurrentGradeId{get;set;}
公共等级{get;set;}
}
公营班级
{
public int GradeId{get;set;}
公共字符串GradeName{get;set;}
公共字符串部分{get;set;}
公共ICollection学生{get;set;}
}
Fluent API配置

public class StudentConfiguration : IEntityTypeConfiguration<Student>
    {
        public void Configure(EntityTypeBuilder<Student> builder)
        {
            builder
                .ToTable("Students")
                .HasKey(p => p.Id);

            builder
                .HasOne(student  => student.Grade)
                .WithMany(grade => grade.Students)
                .HasForeignKey(student => student.CurrentGradeId)
        }
    }

public class GradeConfiguration : IEntityTypeConfiguration<Grade>
    {
        public void Configure(EntityTypeBuilder<Grade> builder)
        {
            builder
                .ToTable("Grades")
                .HasKey(p => p.GradeId);

            builder
                .HasMany(grade => grade.Students)
                .WithOne(student => student.Grade)
                .HasForeignKey(student => student.CurrentGradeId)
        }
    }
公共类学生配置:IEntityTypeConfiguration
{
公共void配置(EntityTypeBuilder)
{
建设者
.ToTable(“学生”)
.HasKey(p=>p.Id);
建设者
.HasOne(学生=>student.Grade)
.WithMany(年级=>grade.student)
.HasForeignKey(学生=>student.CurrentGradeId)
}
}
公共类等级配置:IEntityTypeConfiguration
{
公共void配置(EntityTypeBuilder)
{
建设者
.ToTable(“等级”)
.HasKey(p=>p.GradeId);
建设者
.HasMany(年级=>grade.Students)
.WithOne(学生=>学生成绩)
.HasForeignKey(学生=>student.CurrentGradeId)
}
}

您可以任意选择。但不是两者都有。(尽管您似乎已经交换了“Has…”代码块)