原文: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 添加一些额外的服务才能正常工作
具体来说,我们需要做的两件事情:
所有这些都可以通过在 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。