笔记源于课堂编写:BiliBili
源视频教程:https://www.bilibili.com/video/BV1xa4y1v7rR/

一、添加和查询

1.添加

  • 一次添加一条数据:
    • 数据上下文类.表名.Add(添加的数据)
  • 一次添加多条数据:
    • 数据上下文类.表名.AddRange(数据1,数据2…)
    • 数据上下文类.表名.AddRange(new List<表名>(数据1,数据2…))
  • 一次添加不同表多条数据:
    • 数据上下文类.AddRange(表1数据,表1数据,表2数据…)

2.查询:

  • 返回集合:ToList()
  • 返回符合条件的第一条数据,没有数据则报错:First()
  • 返回符合条件的第一条数据,可以没有数据:FirstOrDefault()
  • 符合查询条件的只能是一个数据:Single()
  • 符合查询条件的只能是一个数据,或者没有数据:SingleOrDefault()
  • 返回符合条件最后一条数据,没有数据则报错:Last()
  • 返回符合条件最后一条数据,可以没有数据:LastOrDefault()
  • 结果数量:Count()
  • LongCount()
  • Min()
  • Max()
  • Average()
  • Sum()
  • Find()
  • 异步版本:”xxx”+async

3.删除

  • 一次删除单条数据
    • 数据上下文类.表名.Remove(查询出来要删除的数据)
    • 数据上下文类.Remove(查询出来要删除的数据)
  • 一次性删除多条数据
    • 数据上下文类.表名.RemoveRange(查询出来要删除的数据1,数据2…)
    • 数据上下文类.RemoveRange(查询出来要删除的数据1,数据2…)

003.1-EntityFrameworkCore3.1极简入门教程 - 图1

二、加载关联数据

1.加载关联数据

  • 预加载:Eager loading
  • 显示加载:Ecplicit loading
  • 懒加载:Lazy loading

Context无法追踪匿名类,只能追踪他所识别的类。

2.无主键的Entity

  • .NET Core3.1允许无主键的Entity
  • 他们不会被追踪
  • 映射到没有主键的Table或View

三、执行原生SQL

1.执行原生SQL的两组方法

  • 使用SQL语句
    • FormSQLRaw(“select * from …”)
    • FormSQLRawAsync(“select * from …”):异步
  • 使用C#6,插值语法的SQL语句
    • FormSQLInterpolated($”select * from {xx}”)
    • FormSQLInterpolatedAsync($”select * from {xx}”):异步

2.原生SQL查询的要求

  • 必须返回Entity类型的所有(标量)属性
  • 字段名和Entity的属性名匹配
  • 无法包含关联的属性
  • 只能查询已知的Entity

3.执行非查询类SQL

  • Context.Database.ExecuteSQLRaw()
  • Context.Database.ExecuteSQLRawAsync()
  • Context.Database.ExecuteSQLInterpolated()
  • Context.Database.ExecuteSQLInterpolatedAsync()
  • 注意:
    • 无法用于查询
    • 只能返回受影响的行数

上一篇

002.4-NET Core和Blog.Core【老张的哲学】

下一篇

004.1-Blazor WebAssembly极简入门教程