学海无涯

导航

随笔分类 -  EntityFrameworkCore

模型特性
摘要:DisplayFormat 特性用于显式指定日期格式: [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public DateTime ReleaseDate { get; set; 阅读全文

posted @ 2023-02-10 16:01 宁静致远. 阅读(26) 评论(0) 推荐(0)

向数据库中添加种子数据
摘要:在Models目录下添加SeedData类 1 using Microsoft.EntityFrameworkCore; 2 using MvcMovie.Data; 3 4 namespace MvcMovie.Models 5 { 6 public static class SeedData 7 阅读全文

posted @ 2023-02-10 10:16 宁静致远. 阅读(43) 评论(0) 推荐(0)

Microsoft.Data.SqlClient.SqlException (0x80131904) 证书链是由不受信任的颁发机构颁发的
摘要:解决方法: 直接在“数据库连接字符串最后面”增加证书信任的配置。 ;TrustServerCertificate=true 或者 连接字符串里的设置是:Encrypt=True;TrustServerCertificate=True; 阅读全文

posted @ 2022-11-08 12:12 宁静致远. 阅读(1255) 评论(0) 推荐(0)

EF Core 执行原生SQL
摘要:1. 执行Sql 非查询语句 [HttpPost("InsertBatch")] public async Task<ActionResult> InsertBatch() { string title = "执行原生Sql非查询语句"; double price = 89.6; DateTime 阅读全文

posted @ 2022-10-01 15:21 宁静致远. 阅读(176) 评论(0) 推荐(0)

EF Core 分页查询 页码导航
摘要:1 namespace MvcMovie.Utility 2 { 3 /// <summary> 4 /// 分页帮助类 5 /// </summary> 6 public class PageHelper 7 { 8 public PageHelper(int pageSize, int page 阅读全文

posted @ 2022-10-01 11:25 宁静致远. 阅读(225) 评论(0) 推荐(0)

EF Core 查询性能优化
摘要:一、IEnumerable 和 IQueryable 的区别 1. IEnumerable (客户端评估) 1.1 是立即查询Sql执行,除了生成首次的 Where 条件之外,之后的查询条件都是在内存中进行,当数据量很大时,性能就会有问题。 2. IQueryable (服务器端评估 推荐) 2.1 阅读全文

posted @ 2022-10-01 10:28 宁静致远. 阅读(339) 评论(0) 推荐(0)

EF Core 基于关系的复杂查询
摘要:在EF Core 中进行跨表数据查询变得非常容易,但是开发人员仍然需要关注和调整 EF Core 底层生成的 SQL 语句,确保在系统的重要环节不会有明显的性能瓶颈。 [HttpGet("query/{message}")] public async Task<ActionResult<IEnume 阅读全文

posted @ 2022-09-30 15:05 宁静致远. 阅读(100) 评论(0) 推荐(0)

EF Core 关系配置 多对多
摘要:一对多和一对一都只需要在表中增加外键列,但是在多对多关系中,我们必须引入一张中间表保存两张表之间的关联关系。 多对多:不需要声明中间表实体,也不需要声明外键。 实体: public class Teacher { public long Id { get; set; } public string 阅读全文

posted @ 2022-09-30 14:50 宁静致远. 阅读(536) 评论(0) 推荐(0)

EF Core 关系配置 一对一
摘要:一个订单对应一个快递信息 在一对多关系中,EF Core 会自动在多端的表中生成一个指向一端的外键列,不需要我们显式地声明外键属性。但是在一对一关系中,必须显式地在其中一个实体类中声明一个外键属性。 实体类: /// <summary> /// 订单 /// </summary> public cl 阅读全文

posted @ 2022-09-30 10:19 宁静致远. 阅读(158) 评论(0) 推荐(0)

EF Core 关系配置 一对多 单向导航属性
摘要:一对多 单向导航属性 实体类: /// <summary> /// 用户 /// </summary> public class User { public long Id { get; set; } /// <summary> /// 姓名 /// </summary> public string 阅读全文

posted @ 2022-09-29 16:58 宁静致远. 阅读(110) 评论(0) 推荐(0)

EF Core 关系配置 一对多 双向导航属性
摘要:EF Core 支持一对多、多对对、一对一 关系。 一篇文章 Article 包含多条评论 Comment Article(1)——》Comment(1,2,3...) 对于主从结构的“一对多”表关系,我们一般声明为双向导航属性,对于其它的“一对多”,则需根据情况决定使用单向导航属性还是双向导航属性 阅读全文

posted @ 2022-09-29 16:43 宁静致远. 阅读(550) 评论(0) 推荐(0)

EF Core 操作数据库
摘要:查看EF Core 执行时生成的Sql语句 在DbContext上下文中添加以下代码,在程序操作数据库时,就能在控件台看到Sql语句。 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { op 阅读全文

posted @ 2022-09-29 08:46 宁静致远. 阅读(67) 评论(0) 推荐(0)

EF Core 代码优先使用Fluent API 配置
摘要:EF Core 除了用数据注释 Data Annotation 对实体类进行配置之外,还提供了Fluent API 的方式 对实体类进行配置。 Fluent API 优势: 1. 能够更好的进行职责分离。实体类只负责抽象描述,不涉及和数据库相关的细节,所有数据库相关的细节都放到配置类中,这样我们能更 阅读全文

posted @ 2022-09-29 07:40 宁静致远. 阅读(366) 评论(0) 推荐(0)

ApplicationDbContext配置
摘要:一、appsetting.json 声明连接字符串 "ConnectionStrings": { "DefaultConnection": "Server=DESKTOP-DABHN6U\\MSSQLSERVER2014;uid=sa;pwd=Lz38275292;database=SPA;Mult 阅读全文

posted @ 2022-09-29 04:56 宁静致远. 阅读(348) 评论(0) 推荐(0)

EFCore 数据库迁移
摘要:以下代码在”程序包管理控件器“窗口执行,且必须添加:Microsoft.EntityFrameworkCore.Tools 包 初始化并且创建迁移: add-migration InitialCreate 命令行方式: dotnet ef migrations add Added_TodoItem 阅读全文

posted @ 2022-09-29 04:44 宁静致远. 阅读(140) 评论(0) 推荐(0)

EFCore乐观并发控制
摘要:为了避免多个用户同时操作同一个资源造成的并发冲突问题,通常需要进行并发控制。 并发控制分为:乐观和悲观两策略 悲观:悲观并发控制一般采用行锁、表锁等 排它销对资源进行锁定,确保一个时间点只有一个用户在操作被锁定的资源。 悲观并发控件的使用比较简单,仅对要进行并发控制的资源加上锁即可,但是这种锁是独占 阅读全文

posted @ 2022-09-26 09:17 宁静致远. 阅读(335) 评论(0) 推荐(0)

EntityFrameworkCore 配置
摘要:Nuget引用组件: Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools 连接字符串 appsetting.json "Con 阅读全文

posted @ 2022-09-15 09:47 宁静致远. 阅读(54) 评论(0) 推荐(0)

ASP.NET Core雪花算法分布式ID生成工具类
摘要:安装: 1.NuGet中添加 OnceMi.AspNetCore.IdGenerator 程序集 2.Program中设置参数 //AppId,Appid范围为0-63 builder.Services.AddIdGenerator(m => { m.AppId = 1; }); 3.获取ID [A 阅读全文

posted @ 2022-09-12 16:47 宁静致远. 阅读(1087) 评论(0) 推荐(0)