原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程

ASP.NET Core 配置 EF 框架服务

上一章节中我们了解了 Entity Framework 的基本工作原理和 DbContext ,我们也创建了一个自己的 HelloWorldDBContext。 本章节我们就来讲讲如何设置我们的 EF 框架来链接到 SQLite 数据库

配置 EF 框架服务

要让我们的 EF 框架的 DBContext 能够运行起来,我们需要更改一下应用程序的配置

我们需要添加一个数据库连接字符串,以便我们的 HelloWorldDBContext 知道要去哪个服务器以及要查询哪个数据库

我们需要做以下工作:

  1. 将把数据库连接字符串保存在一个 JSON 的配置文件中
  2. 同样的,还需要在 Startup 类的 ConfigureServices 方法中添加 EF 服务
  3. EF 框架和 ASP.NET 和 MVC框架一样,都使用依赖注入。为了能够注入,运行时需要知道 EF 框架使用的各种服务
  4. 当然了,有一个简单的配置 API 可以用来添加我们需要的所有默认服务

好吧,开始吧

双击打开 AppSettings.json 文件,并添加以下数据库连接字符串

"database": {
"connection": "Data Source=blogging.db"
}

添加完成后,AppSettings.json 文件全部内容如下

{
"message":"Hello World!\n你好,简单教程,你的网址是 www.twle.cn 吗?",
"database": {
"connection": "Data Source=blogging.db"
}
}

我们使用的是相对路径,在 SQLite 中使用相对路径时,路径将与应用程序的主程序集相关。

在我们的 HelloWorld 项目中,主要二进制文件是 bin/Debug/netcoreapp2.1/ConsoleApp.SQLite.dll,因此 SQLite 数据库将位于 bin/Debug/netcoreapp2.1/blogging.db

接下来,我们双击打开 Startup.cs 文件,转到 Startup

我们需要为 Entity Framework Core 添加一些额外的服务才能正常工作

具体来说,我们需要做的两件事情:

  1. 添加与 SQLite 相关的 EF 框架服务
  2. 告诉 EF 框架我们的 DBContext 是哪个类

所有这些都可以通过在 IServiceCollection 上使用扩展提供的方法来完成,如以下程序中所示

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(); services.AddEntityFrameworkSqlite()
.AddDbContext<HelloWorldDBContext>
(options => options.UseSqlite(Configuration["database:connection"]));
}

由于 EF 框架可以兼容和处理不同类型的数据库,包括非关系数据库,我们需要告知 EF 实体框架添加 SQLite 相关的服务

然后还需要通过 AddDbContext() 方法告诉 EF 框架我们的 DBContext 类,方便它可以适当地构造该类的实例

AddDbContext() 方法 接受一个泛型类型参数,我们指定了 DBContext 派生类的类型 HelloWorldDbContext

AddDbContext() 方法中,我们需要设置我们的 DBContext 的选项

设置选项可以通过 lambda表达式 来完成,我们所需要做的就是告诉 EF 框架我们的 DBContext 将转到 UseSqlite

到此为止,我们的配置 EF 框架服务工作总算是完成了,接下来我们将学习如何设置数据库,迁移数据库

ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程的更多相关文章

  1. ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF SQLite 支持 上一章节我有提 ...

  2. ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 使用 EF 框架查询数据 上一章节我们学习了如何设置 ...

  3. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)  (1)框架搭建    (2):数据 ...

  4. [ASP.NET MVC]: - EF框架学习手记

    1.EF(Entity Framework)实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. 2.什么是ORM?ORM指的是面向对象的对象模型和关系型 ...

  5. ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 数据库上下文 上一章节中我们了解了 Entity Framewo ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列

    http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也 ...

  8. ASP.NET MVC+EF框架+EasyUI实现权限管理(附源码)

    前言:时间很快,已经快到春节的时间了,这段时间由于生病,博客基本没更新,所以今天写一下我们做的一个项目吧,是对权限的基本操作的操作,代码也就不怎么说了,直接上传源码和图片展示,下面我们直接进入主题介绍 ...

  9. ASP.NET Core 设置和初始化数据库 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 设置和初始化数据库 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 设置和初始化数据库 上一章节中我们已经设置和配置好了 EF ...

随机推荐

  1. 【Codeforces Round #439 (Div. 2) C】The Intriguing Obsession

    [链接] 链接 [题意] 给你3种颜色的点. 每种颜色分别a,b,c个. 现在让你在这些点之间加边. 使得,同种颜色的点之间,要么不连通,要么连通,且最短路至少为3 边是无向边. 让你输出方案数 [题 ...

  2. swift学习第十四天:属性监听器

    监听属性的改变 在OC中我们可以重写set方法来监听属性的改变 Swift中可以通过属性观察者来监听和响应属性值的变化 通常是监听存储属性和类属性的改变.(对于计算属性,我们不需要定义属性观察者,因为 ...

  3. 【Heritrix基础教程之3】Heritrix的基本架构 分类: H3_NUTCH 2014-06-01 16:56 1267人阅读 评论(0) 收藏

    Heritrix可分为四大模块: 1.控制器CrawlController 2.待处理的uri列表  Frontier 3.线程池 ToeThread 4.各个步骤的处理器 (1)Pre-fetch ...

  4. docker nginx实现一个主机部署多个站点

    原文:docker nginx实现一个主机部署多个站点 在某站租赁的虚拟机快到期了,续费得花200多,想到在阿里云新买的服务器,不如把这个也转移过去.域名我就用真实的吧,大家别黑我网站就好了,谢谢各位 ...

  5. NavMesh动态碰撞

    今天遇到一个问题,就是怎样处理一些动态的障碍物. NavMesh是能够躲避静态的障碍物.NavMeshObstacle的作用就是动态添加障碍. 可是有个问题,NavMeshObstacle是圆,连椭圆 ...

  6. 谈谈JavaEE的mvc模式及典型的三层架构

    首先,向读者介绍一下mvc架构,mvc是一种源于桌面程序的架构模式,它的基本思想是把程序界面和业务逻辑分开,这样便于软件的后期维护,同时也方便开发时期分工及管理,mvc有很多有点所以现在已经被广泛的应 ...

  7. RandomStringUtils RandomUtils

    上一篇是StringUtils 链接http://www.cnblogs.com/tele-share/p/8060129.html 1.RandomStringUtils 1.1模拟实现random ...

  8. java开发中的那些事(5)--------一点经历,败给2分钟的2个小时

    特意记下这个经历,这个让我感慨万千又斗志昂扬的一次经历,这是经验,也是生活. 故事的始末是这种,先给大家上几句代码,如今身在家中,仅仅能凭记忆敲打几行,大致意思倒不会错: {field:'code', ...

  9. Tomcat的JVM经常挂掉,根据hs_err_pid23224.log这种日志文件,也没能发现具体是什么原因导致的

    ## A fatal error has been detected by the Java Runtime Environment:##  SIGBUS (0x7) at pc=0x00007f1a ...

  10. Nginx与真实IP

    配置了Nginx,Tomcat中的Web程序,获得的ip一直是"127.0.0.1",比较纳闷.获得远程ip,已经判断了很多情况,为什么会这样呢? 正解 proxy_set_hea ...