ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程
ASP.NET Core 配置 EF 框架服务
上一章节中我们了解了 Entity Framework 的基本工作原理和 DbContext
,我们也创建了一个自己的 HelloWorldDBContext
。 本章节我们就来讲讲如何设置我们的 EF 框架来链接到 SQLite 数据库
配置 EF 框架服务
要让我们的 EF 框架的 DBContext 能够运行起来,我们需要更改一下应用程序的配置
我们需要添加一个数据库连接字符串,以便我们的 HelloWorldDBContext
知道要去哪个服务器以及要查询哪个数据库
我们需要做以下工作:
- 将把数据库连接字符串保存在一个 JSON 的配置文件中
- 同样的,还需要在
Startup
类的ConfigureServices
方法中添加 EF 服务 - EF 框架和 ASP.NET 和 MVC框架一样,都使用依赖注入。为了能够注入,运行时需要知道 EF 框架使用的各种服务
- 当然了,有一个简单的配置 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 添加一些额外的服务才能正常工作
具体来说,我们需要做的两件事情:
- 添加与 SQLite 相关的 EF 框架服务
- 告诉 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 基础教程 - 简单教程,简单编程的更多相关文章
- ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF SQLite 支持 上一章节我有提 ...
- ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 使用 EF 框架查询数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 使用 EF 框架查询数据 上一章节我们学习了如何设置 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 (2):数据 ...
- [ASP.NET MVC]: - EF框架学习手记
1.EF(Entity Framework)实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. 2.什么是ORM?ORM指的是面向对象的对象模型和关系型 ...
- ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 数据库上下文 上一章节中我们了解了 Entity Framewo ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列
http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理(附源码)
前言:时间很快,已经快到春节的时间了,这段时间由于生病,博客基本没更新,所以今天写一下我们做的一个项目吧,是对权限的基本操作的操作,代码也就不怎么说了,直接上传源码和图片展示,下面我们直接进入主题介绍 ...
- ASP.NET Core 设置和初始化数据库 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 设置和初始化数据库 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 设置和初始化数据库 上一章节中我们已经设置和配置好了 EF ...
随机推荐
- 移动开发之css3实现背景几种渐变效果
移动端背景渐变,非常的年轻,符合90后年轻一代的审美,css3的这个渐变目前主要是应用在手机前端领域. 产品设计中使用渐变色的好处:1:观众不至于眼睛过于疲劳(如果是浅色背景,3个小时下来极容易造成观 ...
- 【t086】防护伞
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 据说2012的灾难和太阳黑子的爆发有关.于是地球防卫小队决定制造一个特殊防护伞,挡住太阳黑子爆发的区域 ...
- [Python学习] 简单爬取CSDN下载资源信息
这是一篇Python爬取CSDN下载资源信息的样例,主要是通过urllib2获取CSDN某个人全部资源的资源URL.资源名称.下载次数.分数等信息.写这篇文章的原因是我想获取自己的资源全部的评论信息. ...
- iOS开发AFN使用二:AFN文件下载与文件上传
#import "ViewController.h" #import "AFNetworking.h" @interface ViewController () ...
- Selector API用法
java.nio.channels 类 Selector java.lang.Object java.nio.channels.Selector 直接已知子类: AbstractSelector pu ...
- jquery-8 jquery如何处理css样式
jquery-8 jquery如何处理css样式 一.总结 一句话总结: 1.如何获取网页的三个高? 1)可视区域的高$(window).height(); 2)文档总高度$(document).h ...
- Ubuntu10.04下安装Qt4和创建第一个Qt程序
1.首先安装Qt4并采用Qt Creator进行开发演示 (1)在Terminal中输入: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfi ...
- 【C++竞赛 G】Lines
Time Limit: 3s Memory Limit: 64MB 问题描述 Ljr has several lines. The lines are covered on the X axis. L ...
- java 多线程(三)条件对象
转载请注明出处:http://blog.csdn.net/xingjiarong/article/details/47417383 在上一篇博客中,我们学会了用ReentrantLock来控制线程訪问 ...
- jQuery 淡入淡出
演示 jQuery fadeIn() 方法: <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...