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 执行完之后,就可以看到具体的数据库中已经存在数据表了

posted @ 2018-10-30 03:29  一夜听春雨  阅读(328)  评论(0)    收藏  举报