我正在使用C#VS2017将WebAPI RESTful服务写回到MySQL数据库。 首先,我要说明我无法正确执行MySQL集成以实现Datbase优先设计,因此我将反过来进行并首先实现代码。 我已经尝试过按照我能找到的所有文章来使数据库优先工作,但没有按预期工作-在各个阶段都遇到了各种错误,但是很遗憾,我无法首先实现数据库。
因此,首先执行代码,我不确定如何映射它。
我有以下实体/表格: 坚强-自我解释 类-类的详细信息 年份-各个年份的详细信息 StudentClass-学生和班级之间的链接表,这样每个学生可以处于多个班级中。 但是,StudentClass表还具有一个附加字段-YearId,以确保StudentClass链接仅对单个特定年份有效。
Student表具有StudentId,Class表具有ClassId,Year表具有YearId全部作为主键。 StudentClass表具有以下字段-全部包含主键: StudentId,ClassId,YearId
Student类包含Student表的所有字段以及以下字段,并将其链接到类列表:
public virtual ICollection<Class> Classes { get; set; }
“班级”班级包含“班级”表的所有字段以及以下内容,将单个班级链接到多个学生: 公共虚拟ICollection学生{组; }
我的DatabaseContext类具有以下内容:
public DbSet<Student> Students { get; set; }
public DbSet<Class> Classes { get; set; }
public DbSet<Year> Years { get; set; }
在OnModelCreating方法中,它还具有以下内容:
modelBuilder.Entity<Student>()
.HasMany<Class>(s => s.Classes)
.WithMany(c => c.Students)
.Map(cs =>
{
cs.MapLeftKey("studentID");
cs.MapRightKey("classID");
cs.ToTable("studentclass");
});
虽然这很适合将学生与班级联系起来,但这对本年度毫无影响。
要在链接/实体中包含YearId,以便对象本身代表一个学生,以及给定年份的所有课程,我需要做什么?