Entity Framework快速入门笔记第四篇—ModelFirst

  前言:在上一篇博客中我们做了一个小的Demo,使用EF实现了对数据库的增删改查的操作,所谓学习,我们就要学会举一反三,所以好好学习一下上一篇的内容还是方便以后的扩展学习,这篇博客我们主要来研究一下ModelFisrt,这什么意思呢??拿中文说就是实体最先建立模型,也就是我们在不建立数据库的前提下,写入实体框架,让EF框架来帮我们完成建立数据库的动作,下面我们就详细来介绍一下,我们还是和上一章一样,使用控制台来进行操作。

1.新建一个控制台应用程序,起名:EFModelFirstDemo

2.在项目中右键添加一个ADO.NET实体数据模型

3.选择模型内容为空模型,如图所示,单击完成

  

4.当单击完成之后,将会出现一个可视化方式设计的实体数据模型,如何操作在上面也有一些提示,如图所示:

  

5.添加一个Entity FrameWork实体框架

  (1)从工具栏中拖放一个实体或者右键新增实体到设计器中,给新添加的实体起名为UserInfo,但我们添加进去实体的时候,默认已经给我们添加了一个ID主键。如图所示:

      

  注释:默认生成的实体中的ID是自动增长的类型,如果我们不需要或者使用Guid的ID序列号,那么我们一定要在ID上面右键属性设置StoreGeneratedPattern的值为None。

  (2)在实体上面右键新增三个个标量属性UserName,Pwd,SubTime。然后给每个字段设置标量属性设置属性,这里就不详细说了,只要我们学习过数据库的话,就一定会设置的,如图所示:

    

  注释:如果属性的最大长度不设置的话默认是Nvarchar(Max),给SubTime的类型设置为DateTime时间类型。

  (3)我们在添加一个订单表和一个用户角色表,然后给这三个表之间建立关系,如何建立关系呢?其实很简单,只要我们知道两个表之间的关系是一对一,一对多还是多对多,然后右键新增一个关联,最后整体的模型图如图所示:

     

6.根据上面的模型生成数据库

  (1)在设计器中右键单击根据模型生成数据库,打开如图所示的情形,对这张图大家很熟悉。 

    

  (2)然后对上面的图形进行填写和链接数据,如图所示:注意下图中的选择或输入数据库名称我们要自己输入数据库的名称,然后单击确定,在单击下一步,完成的时候数据库已经帮我们创建好了。

    

  (3)当单击完成之后就会根据实体模型生成SQL语句,如图所示:

    

  (4)然后在上面的SQL语句中德空白中右键单击执行,将会出现登录数据库的界面,这时候我们将登录数据库的信息填写完毕,单击Conntect,即可帮我们创建好我们模型中的表在数据库中。查看数据库如图所示:数据库的创建位置是默认的位置 

    

  (5)当到这一步的时候我们已经完成了创建数据库的工作,是不是很爽呢。下来我们就验证一下我们所生成的数据库的是否能够使用。

  (6)这时候如果我们设计的数据模型不合理或者那里有点小的Bug,怎么办呢?很简单了,再重新生成一把不就行了。

  (7)如果我们在数据库中变化了呢?我们的模型变化了吗?没有,在这里要注意我们的模型必须要和数据库一致。那么如何保持一致呢,在模型上面单击右键选择从数据库更新模型, 出现一个界面,然后我们单击完成,这时候我们的模型就和数据库一致了。

7.使用EF帮助我们实现添加一条数据

  (1) 实现的代码如图所示:

    

  (2) 数据库里面加入了三条信息,如图所示:

    

  (3)使用数据库的Profiler查看生成的SQL语句如图所示,总共执行了三条语句,这里就不一一展示了。

    

8.使用EF帮我们实现一个查询的结果

  (1) 第一种两个表之间相连实现的代码如图所示:

    

  (2)使用数据库的Profiler实现查看上面执行的SQL语句如图所示:

    

  注释:从上面的执行结果可以看出EF框架在执行上段代码的时候使用Inner Join关联两个表之间的关系。

  (4)使用延迟加载来查询UserInfo表的信息,有些信息在代码的注释里面有:代码如下

   

  (5)查看结果如图所示

    

  (6)通过Profiler查看生成的SQL语句如图所示:   

    

    

  注释:如果有任何疑问,可以到我们的博客园小组里面给我留言,我们的小组名称是”青春代码”,我们大家可以共同互相探讨一下,也可以在下面给我留言,这样只能我回复了,为了技术,让我们共同努力吧!

原文地址:https://www.cnblogs.com/hanyinglong/p/2784968.html