entityframework学习笔记--003-使用model first

首先,我个人觉得这(model first 即模型优先)是一个鸡肋似的功能。当赞扬着他的强大的功能的同时,你也会觉得这个功能好像是不是不怎么需要,也很少使用。

1.右键你的项目,选择“添加”》“新建项” ,在弹出的对话框中选择“数据”,“ADO.NET实体数据模型”,点击“添加”。如图3-1

entityframework学习笔记--003-使用model first

如3-1

2.选择“空EF设计器模型”,点击“完成”。如图3-2

entityframework学习笔记--003-使用model first

图3-2

3.在“设计器”中右键,选择“新增实体”,添加实体名称等数据项,点击确定。如图3-3

entityframework学习笔记--003-使用model first

图3-3

4,.在“Student”实体的属性上右键,依次点击“新增”》“标量属性”,修改属性名为“Name”,右键“Name”,点击“属性”可弹出属性框,设置相应属性值。据此方法,依次添加“Age”,“Detail”字段。如图3-4

entityframework学习笔记--003-使用model first

图3-4

5.实体设计完成后,右键设计器空白处,选择"根据模型生成数据库"。在弹出的对话框中,可以选择“新建连接”也可以选择一个已经生成的连接,然后点击下一步。如图3-5

entityframework学习笔记--003-使用model first

图3-5

6.到此会生成一个.sql的文件,打开文件,右键空白处,点击“执行”。如图3-6.(如果无法执行,可复制sql内容,在数据库中直接执行)如图3-6

entityframework学习笔记--003-使用model first

图3-6

7.成型成功后,数据库中的表就已经生成了。下面演示的是新增数据到数据库中,其实和其他的方式一样。

 1 using (Model1Container1 db = new Model1Container1())
 2             {
 3                 for (int i = 0; i < 5; i++)
 4                 {
 5                     Student s1 = new Student();
 6                     s1.Name = "studnet" + i;
 7                     s1.Age = i;
 8                     s1.Detail = "detail" + i;
 9 
10                     db.Students.Add(s1);
11                 }
12 
13                 int count = db.SaveChanges();
14 
15                 Console.WriteLine("成功插入 {0} 条数据!",5);
16 
17                 Console.WriteLine("name 		 age");
18 
19                 foreach (var item in db.Students)
20                 {
21                     Console.WriteLine("{0} 	 {1}", item.Name, item.Age);
22                 }
23             }
View Code

输出:

entityframework学习笔记--003-使用model first

图3-7

8.其实“model first”的功能之强大元不止这些,比如“表关系”、“导航属性”、“属性限制”等等,都是可以通过它来完成的。不过“model first”使用的人貌似不多,可能正是因为这样的原因。在ef7中,已经把这个功能移除了。