摘要: 术语定义 有许多术语用于描述关系 相关实体: 这是包含外键属性的实体。 有时称为关系的 "子级"。 主体实体: 这是包含主/备用键属性的实体。 有时称为关系的 "父项"。 主体密钥: 唯一标识主体实体的属性。 这可能是主键或备用密钥。 外键: 用于存储相关实体的主体键值的依赖实体中的属性。 导航属性: 在主体和/或从属实体上定义的属性,该属性引用相关实体。 集合导航属性: 一个导航属性,其... 阅读全文
posted @ 2020-07-22 14:25 maanshancss 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 这里讲一些创建模型中不常使用的功能 其它一 Dbo架构 Microsoft SQL Server 将使用 dbo 架构(SQLite 不支持架构),设置默认架构也会影响其他数据库对象,如序列 阅读全文
posted @ 2020-07-22 14:24 maanshancss 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 概念 影子属性是未在 .NET 实体类中定义但在 EF Core 模型中为该实体类型定义的属性。 这些属性的值和状态纯粹在更改跟踪器中进行维护。 当数据库中的数据不应在映射的实体类型上公开时,阴影属性非常有用。 阴影属性不属于您的实体类,因此,您无法在访问实体的其它属性时访问它,只能在构建实体数据模型时为实体类型配置阴影属性,并且他们也将映射到数据库列,阴影属性的值和状态仅在更改追踪器中维... 阅读全文
posted @ 2020-07-22 14:23 maanshancss 阅读(281) 评论(0) 推荐(1) 编辑
摘要: 并发标记 并发控制概念: 指的是用于在发生并发更改时确保数据一致性的特定机制。 配置为并发标记的属性用于实现乐观并发控制,并发标记的实现是通过EF Core来实现并发冲突的解决,而非在数据库层面的方案。EF Core 实现了乐观并发控制(非数据库层面),这意味着它将允许多个进程或用户独立进行更改,而不会产生同步或锁定的开销。 在理想情况下,这些更改将不会相互干扰,因此都能够成功。 在最坏的情... 阅读全文
posted @ 2020-07-22 14:23 maanshancss 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 创建索引 不能用特注,只能用API模式创建索引 您可以使用 "熟知 API" 按如下方式为单个列指定索引: protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity() .HasIndex(b => b.Url) //创建普通索引 .... 阅读全文
posted @ 2020-07-22 14:16 maanshancss 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 属性的优先级 特性(称为数据注释)应用于类和属性。 数据注释会替代约定,但会被 Fluent API 配置替代,也就是OnModelCreating 里面的等级最高; 下面的例子一般会使用两种模式都写一遍; 修改字段数据类型 比如今天写了2个byte类型的字段,需要把字段属性修改为 tinyint 还是需要修改的 //注解模式 public class Blog { ... 阅读全文
posted @ 2020-07-22 14:10 maanshancss 阅读(274) 评论(0) 推荐(1) 编辑
摘要: 阅读全文
posted @ 2020-07-22 14:07 maanshancss 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 概念: EF Core 可以从/向 数据库中读取和写入实体实例,如果使用的是关系型数据库,EF Core 可以通过迁移为实体创建表 在模型中包含类型 按照约定,在上下文中的DbSet属性中公开的类型作为实体包含在模型中,还包含在OnModelCreating方法中指定的实体类型,就像通过递归方式浏览其它实现的实体类型的导航属性找到的任何类型一样。 在下面的代码示例中,包含了所有类型:... 阅读全文
posted @ 2020-07-22 14:07 maanshancss 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 概念 DbContext类是Entity Framework Core的组成部分。 DbContext实例代表与数据库的会话,可用于查询实体实例并将其保存到数据库。 DbContext是工作单元和存储库模式的组合。 EF Core中的DbContext允许我们执行以下任务: 管理数据库连接 配置模型和关系 查询数据库 将数据保存到数据库 配置变更跟踪 缓存 事务管理 要在我们的应用程序... 阅读全文
posted @ 2020-07-22 14:06 maanshancss 阅读(1124) 评论(0) 推荐(2) 编辑
摘要: 调试的时候需要查看执行的SQL 语句,我一般是使用 SQL Profiler,当然还有另外一种方式,就是配置EF 日志,这两种方式都比较简单实用,SQL Profiler可以过滤掉很多自己不想看的日志,可以只看某一个IP的日志,而EF Core 的日志则不可以; SQL Profiler TODO 我会在这里添加一个附件,以后使用记得修改hostname EF Core 日志... 阅读全文
posted @ 2020-07-22 14:04 maanshancss 阅读(917) 评论(0) 推荐(4) 编辑
摘要: DB First 因为EF Core 不支持用于可视化设计器的DB模式和向导来创建类似于EF 6 的实体和上下文,因此我们需要使用Scaffold-DBContext 命令进行逆向工程 Scaffold-DbContext命令# 使用Scaffold-DbContext基于现有数据库创建模型。可以在Package Manager控制台中的Scaffold-DbContext中指定以下参数: ... 阅读全文
posted @ 2020-07-22 14:03 maanshancss 阅读(370) 评论(0) 推荐(0) 编辑
摘要: EF Core是什么 EF Core 是一个 O/RM(Object Relational Mapping)对象关系映射 框架,它也提供了对数据增删改查的基础封装,提供了Code First 的开发,它也有批量增删的功能扩展; EF特征 支持多种数据库 MSSQL ,MySQL,SQLite,InMemory 支持数据库的逆向工程,可以先建立模型也可以先建立数据库 更改模型后可以使用... 阅读全文
posted @ 2020-07-22 10:26 maanshancss 阅读(1141) 评论(0) 推荐(3) 编辑