mvc5.0+EF codefirst 学习
老程序员的开发习惯,一般习惯基于数据库,也就是说,先设计数据库,然后根据数据库来进行代码编写。
由于项目需要,突然使用MVC+EF+CODEFIRST进行开发,刚刚开始有点懵逼,经过几天摸索,以下为项目进行学习总结。
一般,我们习惯于先链接数据库然后使用自己编写的AOD.NET类进行数据操作。因此在开发过程中,我们习惯于先找到开发所需要的数据表和数据链接字符。
但是在codefirst开发的过程中,要求使用代码对数据表进行关系描述,之后才迁移到具体数据库中,因此,如果习惯于先进行数据表设计的,也可以将设计好的数据表,一一对应的写到代码中来。
编写好实体类之后,要建立上下文,对数据库进行链接,然后才能进行具体业务逻辑开发。
OK,我们进入代码。
首先我们先创建两张表(也就是先创建两个实体类),在Models文件夹下创建两个类:Department和Grade
public class Department
{
[Key]
public virtual int DepId { get; set; }
[Required]
[StringLength(20)]
public virtual string DepNum { get; set; }
[Required]
[StringLength(80)]
public virtual string DepName { get; set; }
public virtual List<Grade> grades { get; set; }
}
public class Grade
{
[Key]
public int GradeId { get; set; }
[StringLength(30)]
[Required]
public string GradeName { get; set; }
[StringLength(200)]
public string GradeExplain { get; set; }
public virtual Department department { get; set; }
}
创建完两个实体之后同样在Models文件夹下,创建一个上下文类,以对接数据库
public class ContextConfig:DbContext
{
public ContextConfig() : base("EfDbSchoolInfo")
{
}
public DbSet<Student> Students { get; set; }
public DbSet<Department> Departments { get; set; }
public DbSet<Grade> GetGrades { get; set; }
public DbSet<StudentClass> StudentClasses { get; set; }
public DbSet<Curriculum> Curricula { get; set; }
public DbSet<Achievement> Achievements { get; set; }
public DbSet<StudentMapCurriculum> studentMapcurriculum { get; set; }
}
base("EfDbSchoolInfo")是你在webconfig中的数据库链接字符串
<connectionStrings>
<add name="EfDbSchoolInfo" connectionString="Server=.;Database=SchoolInfo;uid=sa;pwd=Wlg123123;" providerName="System.Data.SqlClient"/>
</connectionStrings>
这段代码相信之前做AOD.NET开发的人看到就很熟悉了,这样基本上数据库就对接上上了,OK,那么怎么把他们弄到具体数据中呢?
这就需要使用一些命令了,需要在NUGET包管理中找到控制台,然后使用命令迁移数据,这个可以网上很多资料,我们只是把一些基本流程告诉大家
迁移几个命令:1.Enable-Migrations 启动工具
2.add-migration +你要跟新的名称
3.Update-database 更新到具体数据库
OK 执行完之后,就可以看到具体的数据库中已经存在数据表了

浙公网安备 33010602011771号