3.翻译系列:EF Code-First 示例(EF 6 Code-First系列)

原文连接:http://www.entityframeworktutorial.net/code-first/simple-code-first-example.aspxhtml

 

EF 6 Code-First系列文章目录:数据库

 

 

在前面一节中,咱们学会了怎么,在咱们项目中安装Entity Framework。如今咱们来建立一个简单的Code-First示例吧:app

假定,咱们想为XYZ学校建立一个简单的应用程序,使用这个程序来添加、更新学生信息,以及学生分数信息,班级信息还有老师信息。函数

不像以前传统作法那样,先建立数据库,这里咱们为咱们的学生建立学生领域类。首先建立Student,以及Grade实体,代码中一个学生实体和一个Grade实体相关联。这被称做为一对多的关系。后面的章节中,咱们将会学到EF怎么管理实体之间的关系。学习

咱们建立一个控制台应用程序,安装好EF。测试

而后建立Student 和Grade类ui

 public class Student { /// <summary> /// 学生ID /// </summary> public int StudentID { get; set; } /// <summary> /// 学生姓名 /// </summary> public string StudentName { get; set; } /// <summary> /// 出生日期 /// </summary> public DateTime? DateOfBirth { get; set; } /// <summary> /// 图片 /// </summary> public byte[] Photo { get; set; } /// <summary> /// 身高 /// </summary> public decimal Height { get; set; } /// <summary> /// 体重 /// </summary> public float Weight { get; set; } /// <summary> /// 导航属性--Grade--年级 /// </summary> 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; } }

如上,咱们建立好了程序的领域类。spa

Code-First方式,一样还须要一个上下文类,上下文类是继承自DbContext类的类。建立一个上下文类,以下,它继承自DbContext,暴露两个属性Students和Grades..net

如今,咱们已经建立好了Code-First方式须要的类,如今来测试一下:翻译

 

运行项目:

 

 表示一个学生信息已经成功添加到了数据库中。

可是,数据库在哪里呢?数据表呢?数据列呢?

这就是EF Code-First API 迷人之处。它基于你在上下文类的构造函数中传递的参数,建立数据库。由于这里,咱们在上下文类的构造函数中没有传递任何参数,EF 就给咱们在这里建立了数据库:

C:\Users\你的计算机名称

这个数据库不能附加,咱们能够在配置文件,配置一下:

而后修改一下,上下文类的构造函数:

再运行项目看看:

 

 说明成功建立了数据库,咱们看下生成的数据库:

就像上面图形中所示,EF为咱们建立了数据库,还建立了相应的数据表,数据列。这样咱们就使用Code-First,建立了数据库.

请注意:若是你修改了实体,再运行项目的话,就会报错:例如,我在Student实体中加一个属性Email。

而后运行项目:

 

 出现这个错误,是须要进行数据库迁移。你须要在上下文类中,定义数据库初始化策略,而后修改实体,最后运行项目。数据库迁移技术,我好多系列文章中都讲到了,固然 这个系列仍是会告诉你们怎么配置,你们能够到时候好好跟着我巩固一下。

你如今确定很好奇,EF API是怎么建立合适类型的数据列的,怎么建立主键,怎么建立外键的?答案就是使用Code-First默认的约定配置。下面一节中,咱们将学习Code-First默认约定。

相关文章
相关标签/搜索