我正在使用c#vs2017编写一个备份到mysql数据库的webapi restful服务。首先,我要说明的是,我无法让mysql集成正确地工作以实现datbase-first设计,所以我要反过来先实现代码。我已经试着按照我能找到的所有文章让数据库先工作,但没有什么像预期的那样工作-我在不同的阶段得到各种错误,但有时,我无法实现数据库先。
所以,先编写代码,我有一个场景,我不知道如何Map它。
我有以下实体/表格:students-自解释类-一个学年的细节-不同年份的细节studentclass-学生和班级之间的链接表格,这样每个学生可以在多个班级。然而,studentclass表还有一个额外的字段-yearid,确保studentclass链接只对一个特定的年份有效。
student表有studentid,class表有classid,year表有yearid作为主键。studentclass表包含以下字段-所有字段都包含主键:studentid、classid、yearid
student类包含student表的所有字段以及以下字段,并将其链接到类列表:
public virtual ICollection<Class> Classes { get; set; }
class类包含class表的所有字段以及以下内容,将单个类链接到多个学生:public virtual icollection students{get;集合;}
我的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,以便对象本身代表一个学生,以及他们在给定年份的所有班级?
暂无答案!
目前还没有任何答案,快来回答吧!