ORM系列之二:EF(3) 数据库连接

目录

1.前言

2.Code First默认连接

3.Code First指定数据库

4.自定义连接

前言  

  在介绍EFCode First模式时候,我们没有修改任何配置,运行之后自动在LocalDb创建一个新的数据库,并且创建对应的物理表,这个是如何实现的呢? 

  其实在我们安装EF时,就会自动检测当前系统包含的数据库实例,如果SQL Express可用,则默认连接的数据库就是SQL Express;如果LocalDb可用,则默认连接的数据库就是LocalDb;如果两者同时可用,则由于LocalDbSQL Express是升级版,考虑向后兼容,默认使用Sql Express。当检测到可用的数据库之后,EF会在配置文件中添加对应的节点信息,如下图,说明默认连接的是LocalDb

   

 

Code First默认连接  

  在Code First模式下,我们不修改任何配置,直接运行,此时我们自定义的上下文调用的是无参的构造函数,自动生成的数据库名称由EF生成。

   

  

  EF自动创建的数据库名称格式:项目名称+自定义的上下文名称,如下图:

  

Code First指定数据库 

  上述我们没有修改任何配置,数据库也是由EF自动创建,但这只适用于数据库不存在的情况,如果数据库已经存在,我们又改如何指定连接? 

 

  其实也非常简单,我们同样可以不修改任何配置,只需要在自定义的数据库访问上下文中实现一个有参数的构造函数,该参数即已存在的数据库名称,如下:

   

  

  再次运行,查看数据库,我们在EF.ExistDatabase下已经可以看到Blog表,如下:

    

 

自定义连接

  到目前为止,我们只是修改了上下文的构造函数,没有修改配置,不管是新建数据库还是已有数据库,一直使用的还是LocalDb,如果现在我们想完全自定义连接,又该如何实现呢?

 

  根据我们以往的经验,需要在配置文件中添加连接字符串,但是此时要注意,连接字符串Name必须和自定义的上下文名称一致,原来EF自动生成的节点可以删除。

  修改前配置文件:

   

  修改后配置文件:

   

  运行后效果如下:

  

 

 

 

 

原文地址:https://www.cnblogs.com/qianxingdewoniu/p/6123056.html