奕玖科技 > 新闻中心 > 技术文章

asp.net core自学第八天:认识EntityFrameworkCore

来源: 奕玖科技 fly | 2022/8/6 16:29:04

EntityFrameworkCore是一种用来映射数据库的ORM框架。使用它可以大量的减少编写SQL语言的时间。下面举一个例子。比如我们查询文章里id为1的文章。

SQL语句

select top 1 id formarticle where id=1

EntityFramework

AppDb.Article.find(1)

EntityFramework有三中开发模式

数据库优先开发模式(Database First)

这种模式让我们首先建立数据库,然后根据数据库里的数据结构生成相应的实体对象(数据模型)。

模型优先开发模式(Model First)

模型优先我们自己创建空的数据模型,然后根据这些数据模型更新到数据库里。既先创建一个数据库,然后在创建各种对应的表

代码优先开发模式(Code First)

代码优先是我们根据实际需要,创建相应的数据属性和类别,通过orm框架进行管理,然后生成相应的实体

一些忠告

对于我们初学者来说,我们现在要做的是应该如何简单的使用ef code,我们暂时不要关心它上面模式不模式的,通过不断的实战应用,我个人是认为好过看书的。因为如果你要精通EntityFramework 光这一个技术都足够出一本书了,涉及的知识点太多。如果没有实战经验的配合,咱们可能学了前面忘了后面。当然,一些很基本的原理/基础知识我们最好要学习一下,起码让自己知道EntityFramework到底是个啥东西,自己心里有个基本的概念。这一些基础知识我建议大家可以到微软官方去看一下文档,或则去搜索引擎找一下相关的资料看一下。好了,我们开始进行创建第一个EntityFramework吧!

首先通过visual studio 项目实例下的依赖项,选择NuGet程序包。如下图

出现下图的界面,在“浏览”里搜索EntityFrameworkCore,因为本示例采用的是SQL SERVER 所以我们选择Microsoft.EntityFrameworkCore.SqlServer。版本因为小编未使用.net6 所以我们选择5.0打头的版本,然后点击安装。安装成功后在依赖项下面会出现一个分支为“包”的选项,下面会出现Microsoft.EntityFrameworkCore.SqlServer。如下图

好了,这样我们就安装好了EntityFrameworkCore 了,visual studio有自带的sql server服务器(安装软件的时候有选项)可以直接使用。但小编是单独安装了一个正式的SQL服务器,因为正式的SQL服务器能更方便的管理,这里根据个人需要自行选择。因为小编使用的是WIN7系统。所以只能使用SQL SERVER 2012。当然最好是使用SQL SERVER最新版本,比如2022.因为2012数据库居然没有JSON格式。因为现在很多数据都是使用json传输,数据库没有JSON的话最实体模型还得额外处理成JSON有点麻烦。我安装的本地SQL服务器

在上诉工作完成后,我们开始连接数据库。

设置appsettings.json,添加如下代码

"ConnectionStrings": { "mydb": "server=(local);database=student;Trusted_Connection=true" }

数据库连接字符串根据实际情况来设置,上面因为我是做为教程,所以直接使用windows登录的。下面是示例图

设置Startup.cs

安装完成EntityFramework后,我们需要注册这个服务。那么就需要设置Startup.cs了,首先引入EntityFramework

using Microsoft.EntityFrameworkCore;

using Microsoft.Extensions.Configuration;

Startup类下,定义私有字段

private readonly IConfiguration _configuration;

修改构造函数代码如下

public Startup(IConfiguration configuration)
{
     _configuration = configuration;
}

_configuration用来读取appsettings.json里保存的数据库连接字符串

在函数ConfigureServices里添加如下代码

services.AddDbContextPool<AppDb>(options => options.UseSqlServer(_configuration.GetConnectionString("mydb")));

注意AddDbContextPoolusing命令引入到Startup.cs里。

AppDb类的制作

新建一个文件夹取名为“Infrastructure” 添加类AppDb.cs代码如下

using Microsoft.EntityFrameworkCore;
using WebApplication4.Models;
namespace ide.Infrastructure
{
    public class AppDb : DbContext
    {
        public AppDb(DbContextOptionsoptions)
  : base(options) 
        {
        }
        public DbSetArticle { get; set; }
    }
}

Startup.cs里通过using ide.Infrastructure; 引入AppDB。这样我们就成功的连接了数据库了。好了,我们可以暂时新建一个student的数据库,然后新建表article添加一个测试数据来看一下效果

进入HomeController.cs,改造一下它,完整代码如下

using ide.Infrastructure;
using Microsoft.AspNetCore.mvc;//引入mvc
using WebApplication4.Models;
namespace WebApplication4.Controllers
{
    public class HomeController : Controller //把HomeController的信息注入到 mvc.Controller,
    {
        private readonly AppDb app;
        public HomeController(AppDb appDb) //构造函数
        {
            app = appDb;
        }
        [Route("")] //设置路由 这里设置为网站的根目录
        public IActionResult Index() //返回IActionResult数据
        {
            Article article = app.Article.Find(1);
            return View(article); //把变量article放入参数里,那么就可以在index.cshtml调用了
        }
       
    }
}

最终运行程序显示效果如下

好了,一个最简单的EntityFrameworkCore应用实例就讲解完成了。希望能给大家带来帮助!点我这里可以下载本示例的源码

栏目导航
相关文章
文章标签
关于我们
公司简介
企业文化
资质荣誉
服务项目
高端网站定制
微信小程序开发
SEO排名推广
新闻动态
行业新闻
技术学院
常见问题
联系我们
联系我们
人才招聘
联系方式
Q Q:24722
微信:24722
电话:13207941926
地址:江西省抚州市赣东大道融旺国际3栋
Copyright©2008-2022 抚州市奕玖科技有限公司 备案号:赣ICP备2022010182号-1