目录

1.前言

2.Code First默认连接

3.Code First指定数据库

4.自定义连接

前言  

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

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

  

Code First默认连接  

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

  

  

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

  

Code First指定数据库

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

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

  

  

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

  

自定义连接

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

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

  修改前配置文件:

  

  修改后配置文件:

  

  运行后效果如下:

  

ORM系列之二:EF(3) 数据库连接的更多相关文章

  1. ORM系列之二:EF(2)Code First

    目录 1. Code First是什么? 2. Code First 简单示例 3. 数据存储 4. 迁移 Code First是什么 Code First 顾名思义就是先写代码,当然不是乱写,而是按 ...

  2. ORM系列之二:EF(1)

    目录 1. EF是什么 2. 如何获取EF 3. EF有哪些主要模式 EF是什么 EF全称为Entity Framework,是微软推荐的一种数据库访问技术,属于重量级的ORM框架,功能非常强大,目前 ...

  3. ORM系列之二:EF(5) Model First

    前面我们已经介绍过EF中Code First开发模式,简而言之,就是不管三七二十一直接写代码,不过对于很多开发人员来说,可能并不习惯这样来开发,并且安装标准的开发流程,应该是先建模再进行编码,当然EF ...

  4. ORM系列之二:EF(4) 约定、注释、Fluent API

    目录 1.前言 2.约定 2.1 主键约定 2.2 关系约定 2.3 复杂类型约定 3.数据注释 3.1 主键 3.2 必需 3.3 MaxLength和MinLength 3.4 NotMapped ...

  5. eShopOnContainers学习系列(二):数据库连接健康检查

    项目里使用数据库的时候,我们有时候需要知道数据库当前的健康状态,特别是当数据库连接不上的时候能够立马获悉.eShopOnContainers里存在着大量的服务健康.连接健康的检查,数据库连接是其中之一 ...

  6. ORM系列之Entity FrameWork详解

    一. 谈情怀 从第一次接触开发到现在(2018年),大约有六年时间了,最初阶段连接数据库,使用的是[SQL语句+ADO.NET],那时候,什么存储过程.什么事务 统统不理解,生硬的将SQL语句传入SQ ...

  7. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  8. CRL快速开发框架系列教程二(基于Lambda表达式查询)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  9. Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程

    原文:Red Gate系列之二 SQL Source Control 3.0.13.4214 Edition 数据库版本控制器 完全破解+使用教程 Red Gate系列之二 SQL Source Co ...

随机推荐

  1. epoll示例

    书到用时方恨少,一切尽在不言中 #include <iostream> #include <sys/socket.h> #include <sys/epoll.h> ...

  2. MyBatis的初始化方式

    1. 加载配置文件 public static void main(String[] args) throws IOException { //mybatis的配置文件 String resource ...

  3. (2016弱校联盟十一专场10.3) D Parentheses

    题目链接 把左括号看成A右括号看成B,推一下就行了.好久之前写的,推到最后发现是一个有规律的序列. #include <bits/stdc++.h> using namespace std ...

  4. 25条提高iOS App性能的建议和技巧

    这篇文章来自iOS Tutorial Team 成员 Marcelo Fabri, 他是 Movile 的一个iOS开发者. Check out his personal website or fol ...

  5. scala安装

    一:在官网下载相应的版本http://www.scala-lang.org/download/2.10.6.html 二,在linux中解压下载下来的scala包   三:配置环境变量 export ...

  6. Win10 UI入门RelativePanel

    <RelativePanel Background="Black" > <Rectangle x:Name=" RelativePanel.AlignH ...

  7. Java -> 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)

    写入:没有关闭流,容错并不完善. private void insertFile(HttpServletRequest request, HttpServletResponse response) t ...

  8. win8 系统安装node环境记录

    原先我是用win7环境安装node很方便,到了win8系统突然变了,让我顿时困惑了一段时间,但还是被我找到方式解决了,记录一下解决方案: 首先在网上看了一些资料说win8下安装node环境会出错,但我 ...

  9. windows pip安装 更新

    升级: http://blog.csdn.net/liuchunming033/article/details/39578019 pip坏了如何重新安装: https://github.com/pyp ...

  10. Android的5大组件

    1. Activity组件 Activity组件通常的表现形式是一个单独的界面(screen).每个Activity都是一个单独的类,它扩展实现了Activity基础类.这个类显示为一个由Views组 ...