EF Core的CRUD(增删改查)基本操作

一、增加(C)

单笔增加

        //添加
        static void Add()
        {
            using (var db = new Entities())
            {
                Student stu1 = new Student
                {
                    Name = "李四",
                    Age = 19,
                    Adress = "合肥",
                    PhoneNumber = "13200000000"
                };

                //把实体对象附加到上下文
                db.Student.Add(stu1);
                //db.Entry(stu1).State=System.Data.Entity.EntityState.Added;
                var res = db.SaveChanges();

                if (res > 0)
                {
                    Console.WriteLine("添加数据成功!");
                }
            }
        }

批量增加

  //批量处理
        static void AddBatch()
        {
            using (var db = new Entities())
            {
                for (int i = 1; i < 10; i++)
                {
                    var stu1 = new Student
                    {
                        Name = "Rimche" + i,
                        Age = 19 + i,
                        Adress = "合肥",
                        PhoneNumber = "1730000000" + i
                    };
                    db.Student.Add(stu1);
                }

                //可以进行其他操作

                db.SaveChanges();

            }
        }

二、查询

普通查询

        //查询
        static void Query()
        {
            using (var db = new Entities())
            {

                //根据ID进行查询
                var stu1 = db.Student.Find(2);
                var stu11 = db.Student.Where(x => x.Id == 1).FirstOrDefault();
                //根据年龄查找,多个结果时,返回第一个
                var stu2 = db.Student.Where(s=>s.Age==18).FirstOrDefault();

                Console.WriteLine(stu1.Name);
                Console.WriteLine(stu2.Name);

                Console.WriteLine("======延迟查询======");
                //根据条件,返回IQueryable,说明是延迟查询
                var query = db.Student.Where(s => s.Id > 3);
                foreach (var item in query)
                {
                    Console.WriteLine(item.Id + "\t" + item.Name);
                }

                //查询所有
                Console.WriteLine("======查询所有======");
                var queryall=db.Student.ToList();
                foreach (var item in queryall)
                {
                    Console.WriteLine(item.Id + "\t" + item.Name);
                }

            };
        }

分页查询

        //分页查询
       static void PagingQuery(int pageIndex,int pageSize)
        {
            using (var db=new Entities())
            {
                //分页一定要排序
                var query = db.Student.OrderBy(s=>s.Id).Skip((pageIndex -1)*pageSize).Take(pageSize).ToList();
                foreach (var item in query)
                {
                    Console.WriteLine(item.Id + "\t" + item.Name);
                }

            }
        }

三、更新

提供两种更新方式

        //更新
        static void Update()
        {
            using (var db =new Entities())
            {
                //方式一:官方推荐   只会修改需要修改字段
                Student stu = db.Student.Where(s => s.Id == 1).FirstOrDefault();
                stu.Name = "李时珍";
                db.SaveChanges();

                //方式二:修改所有字段
                Student stu1 = db.Student.Where(s => s.Id == 2).FirstOrDefault();
                stu1.Age = 10;
                db.Entry(stu1).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

            }
        }

四、删除

提供两种删除方式

        static void Delete()
        {
            using (var db = new Entities())
            {
                var stu = db.Student.Find(2);//也可以从数据库查询到
                //方式一
                //db.Student.Remove(stu);

                //方式二
                db.Entry(stu).State = System.Data.Entity.EntityState.Deleted;

                int result = db.SaveChanges();
                Console.WriteLine(result);

            }
        }

到此这篇关于EF Core增删改查CRUD的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 从EFCore上下文的使用到深入剖析DI的生命周期最后实现自动属性注入

    故事背景 最近在把自己的一个老项目从Framework迁移到.Net Core 3.0,数据访问这块选择的是EFCore+Mysql.使用EF的话不可避免要和DbContext打交道,在Core中的常规用法一般是:创建一个XXXContext类继承自DbContext,实现一个拥有DbContextOptions参数的构造器,在启动类StartUp中的ConfigureServices方法里调用IServiceCollection的扩展方法AddDbContext,把上下文注入到DI容器中,然后

  • EF Core基础入门教程

    EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可. EF Core 支持多种数据库引擎: Microsoft SQL Sever SQLite Npgsql MySQL ...... 1.获取EF Core 通过NuGet获取要使用的数据库支持.比如:Microsoft SQL Sever 打开NuGet程序包管理器控制台,输入:Install-PackageMicrosoft

  • EF Core通过显式编译提高查询性能

    今天,我将向您展示这些EF Core中一个很酷的功能,通过使用显式编译的查询,提高查询性能. 不过在介绍具体内容之前,需要说明一点,EF Core已经对表达式的编译使用了缓存:当您的代码需要重用以前执行的查询时,EF Core将使用哈希查找并从缓存中返回已编译的查询. 不过,您可能希望直接对查询进行编译,跳过哈希的计算和缓存查找.我们可以通过在EF静态类中下面两个方法来实现: EF.CompileQuery() EF.CompileAsyncQuery() 这些方法允许您定义一个已编译的查询,然

  • EFCore 通过实体Model生成创建SQL Server数据库表脚本

    在我们的项目中经常采用Model First这种方式先来设计数据库Model,然后通过Migration来生成数据库表结构,有些时候我们需要动态通过实体Model来创建数据库的表结构,特别是在创建像临时表这一类型的时候,我们直接通过代码来进行创建就可以了不用通过创建实体然后迁移这种方式来进行,其实原理也很简单就是通过遍历当前Model然后获取每一个属性并以此来生成部分创建脚本,然后将这些创建的脚本拼接成一个完整的脚本到数据库中去执行就可以了,只不过这里有一些需要注意的地方,下面我们来通过代码来一

  • 详解EFCore中的导航属性

    使用了这么久的EntityFrameworkCore框架,今天想来就其中的一个部分来做一个知识的梳理,从而使自己对于整个知识有一个更加深入的理解,如果你对EFCore中的实体关系不熟悉你需要有一个知识的预热,这样你才能够更好的去理解整个知识,在建立好了这些实体之间的关系以后,我们可以通过使用InClude.ThenInclude这些方法来进行快速获得对应关联实体数据,用起来确实十分的方便,这里我们将通过一系列的例子来进行说明.    1 单独使用Include 在介绍这个方法之前,我来先贴出实体

  • .net core EF Core调用存储过程的方式

    前言 在这里,我们将尝试去学习一下 .net core EF Core 中调用存储过程. 我们知道,EF Core 是不支持直接调用存储过程的,那它又提供了什么样的方式去执行存储过程呢?有如下方法: 1.FromSql,官方文档 DbSet<TEntity>.FromSql() 2.执行SQl命令 DbContext.Database.ExecuteSqlCommand() 但是,这两种方式都有局限性: 1.FromSql方式的结果一定要是实体类型,就是数据库表映射的模型.这意味着,执行存储过

  • C# EF Core可视化工具的使用及EF Core入门语句操作代码

    目录 前言 一.EFCoreTools的下载 二.EFCoreTools的使用 1.新建项目并引入EFCoreTools 2.手动引入EFCore的包 三.EFCore的填查删改 1.添加操作 2.查找操作 3.删除操作 4.修改操作 四.总结 前言 Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台版的常用 Entity Framework 数据访问技术. 一.EF Core Tools的下载 EFCore Tools可视化工具下载后安装,并重启ViusalS

  • EF Core的CRUD(增删改查)基本操作

    一.增加(C) 单笔增加 //添加 static void Add() { using (var db = new Entities()) { Student stu1 = new Student { Name = "李四", Age = 19, Adress = "合肥", PhoneNumber = "13200000000" }; //把实体对象附加到上下文 db.Student.Add(stu1); //db.Entry(stu1).St

  • ASP.NET Core使用EF SQLite对数据库增删改查

    SQLIte 操作方便,简单小巧,这里笔者就不再过多介绍,感兴趣可以到以下博文 https://www.jb51.net/article/234142.htm 文章介绍创建ASP.NET Core 程序,创建模型.上下文,生成数据库,对数据库增删查改. 并对每个过程进行详细介绍,使初学者尽快了解内容和相关知识,避免对某一知识点怀疑.卡在某个位置. 1 新建ASP.NET Core MVC 应用 1.1 新建MVC应用 打开Visual Studio 2017,新建 ASP.NET Web应用程序

  • C语言中单链表的基本操作指南(增删改查)

    目录 1.链表概述 2.链表的基本使用 2.0 准备工作 2.1 创建节点(结构体) 2.2 全局定义链表头尾指针 方便调用 2.3 创建链表,实现在链表中增加一个数据(尾添加)----增 2.4 遍历链表 -----查 2.5 查询指定的节点 (遍历 一个个找) 2.6 链表清空------全部删除 2.7.在指定位置插入节点 ----在指定位置增 2.8尾删除----删 2.9 删除头------删 2.10 删除指定节点 3. 测试主程序 总结 1.链表概述 链表是一种常见的数据结构.它与

  • Entity Framework根据实体的EntityState状态实现增删改查

    在上一篇文章中,我们讲解了使用EF实现简单的增删改查,在这篇文章中我们使用实体的EntityState状态来优化数据的增删改查. 一.修改数据 上篇文章中的修改数据的方法是EF官方推荐的方式,即先查询出来要修改的数据,然后在修改.但是这种操作会导致多次操作数据库: 从上面的截图中可以看出,查询数据的时候会执行一次事物,修改的时候又执行了一次事物,即修改数据会操作两次数据库.那么有没有什么方法可以只操作一次数据库呢?那就是下面要讲解的EntityState. 使用EntityState优化上面的修

  • MySQL 详细单表增删改查crud语句

    MySQL 增删改查语句 1.创建练习表 这里练习表没有满足三范式 第一范式(又称 1NF):保证每列的原子性 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性.满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了. 第二范式(又称 2NF):保证一张表只描述一件事情 满足1NF后要求表中的所有列,每一行的数据只能与其中一列相关,即一行数据只做一件事.只要数据列中出现数据重复,就要把表拆分开来. 第三范式(又称 3NF):保证每列都

  • PHP实现对xml进行简单的增删改查(CRUD)操作示例

    本文实例讲述了PHP实现对xml进行简单的增删改查(CRUD)操作.分享给大家供大家参考,具体如下: 假如有下面xml文件: <?xml version="1.0" encoding="UTF-8"?> <setting> <preferTime>55.8</preferTime> <playerValue>56</playerValue> <reduceValue>40</r

  • Mybatis实现增删改查(CRUD)实例代码

    MyBatis简介 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. MyBatis下载:https://github.com/mybatis/mybatis-3/releases Mybatis实

  • Android编程连接MongoDB及增删改查等基本操作示例

    本文实例讲述了Android编程连接MongoDB及增删改查等基本操作.分享给大家供大家参考,具体如下: MongoDB简介 Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C++开发. Mongo安装参考 1)下载安装包文件,解压到某一文件夹下. 官方下载地址:htt

  • C#基于DBContext(EF)实现通用增删改查的REST方法实例

    本文实例讲述了C#基于DBContext(EF)实现通用增删改查的REST方法,分享给大家供大家参考.具体如下: 我们用ADO.NET Entity Data Model来生成实体类后,一般都会对这些类进行基本的增删改查操作,如果每个类都要写这些基本的方法,实在太乏味了.下面就是通过step by step的方式介绍如何用DBContext来实现通用增删改查的REST方法,以及实现过程中容易出现的问题. 1. 打开vs2012,新建一个class library的项目 2. 新加一个ADO.NE

  • ASP.NET MVC+EF实现异步增删改查

    目录 功能实现 1.搭建UI层 2.添加实体类 3.添加服务接口层 4.添加Entity Framework 1.开启迁移 2.增加迁移 3.生成数据库 5.添加接口的实现类 6.添加控制器 功能实现 我们以学生为例,实现增删改查功能. 1.搭建UI层 我们这里使用ASP.NET MVC作为界面层显示数据,首先创建一个解决方案,然后添加一个MVC项目,命名为TaskAsync.UI,创建后的项目结构如下图所示: 2.添加实体类 我们把实体类放在单独的类库里面,新建一个类型项目,命名为TaskAs

随机推荐