摘要: 更新数据 数据库中有主键所对应的记录,修改实体到 Modified 状态,调用 SaveChanges 时,生成 Update 语句。 更新已跟踪实体的数据 当实体由 DbContext 获取,且默认为已为跟踪状态,当我们改变实体的属性值时,跟踪器将自动将实体的状态修改为 Modified 状态。 阅读全文
posted @ 2021-03-30 23:55 LBO.net 阅读(4081) 评论(0) 推荐(1) 编辑
摘要: 每个上下文实例都有一个 ChangeTracker,它负责跟踪需要写入数据库的更改。 更改实体类的实例时,这些更改会记录在 ChangeTracker 中,然后在调用 SaveChanges 时被写入数据库。 此数据库提供程序负责将更改转换为特定于数据库的操作(例如,关系数据库的 INSERT、UP 阅读全文
posted @ 2021-03-30 23:51 LBO.net 阅读(1829) 评论(0) 推荐(0) 编辑
摘要: 全局筛选器的一些限制 局限性一:HasQueryFilter方法过滤筛选无法应用于导航属性。 builder.HasQueryFilter(f => !f.IsDeleted && f.Posts.All(w => !w.IsDeleted)); 局限性二:HasQueryFilter方法过滤筛选只 阅读全文
posted @ 2021-03-30 23:45 LBO.net 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 全局查询筛选器 全局查询筛选器用于全局设置筛选数据的条件。常见的应用场景有:软删除,多租户,禁用,激活,多用户博客系统。 全局查询筛选器可以精简代码,可以提高代码质量 ,防止开发者忘记加条件。 public class Blog { private string _tenantId; public 阅读全文
posted @ 2021-03-30 23:43 LBO.net 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 异步查询 当在远程数据库中执行查询时,同步查询可能会阻止当前线程,异步查询可避免阻止线程,这有助于避免冻结户端界面, 异步操作还可以增加 Web 应用程序的吞吐量,可以在数据库操作完成前释放线程去处理其他请求。 EF Core 不支持在同一上下文实例上运行多个并行操作。 应始终等待操作完成,然后再开 阅读全文
posted @ 2021-03-30 23:41 LBO.net 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 在 EF Core 中可以使用原始 SQL 语言对数据进行查询,当无法使用 LINQ 表达要执行的查询或者因使用LINQ 查询而导致低效时,SQL 查询非常有用,原始 SQL 查询可返回实体类型。 基本原生 SQL 查询 可以使用 FromSql 扩展方法开始查询。 var blogs = cont 阅读全文
posted @ 2021-03-30 23:38 LBO.net 阅读(1205) 评论(0) 推荐(0) 编辑
摘要: 客户端与服务端求值 在下面的示例中,一个辅助方法用于标准化从 SQL Server 数据库中返回的博客的 URL。 由于 SQL Server 提供程序不了解此方法的实现方式,因此不可以将其转换为 SQL。 除了在客户端上是通过执行该方法来返回 URL,查询的其余部分都是在数据库中执行的。 var 阅读全文
posted @ 2021-03-30 23:34 LBO.net 阅读(259) 评论(0) 推荐(0) 编辑
摘要: Entity Framework Core 允许使用导航属性来加载相关实体。 加载关联数据三种方式 预先加载:表示从数据库中加载关联数据,作为初始查询的一部分。显式加载:稍后手动控制时,从数据库中显式加载导航数据。 延迟加载:当访问导航属性时,才从数据库中加载导航属性数据。 IQueryable 未 阅读全文
posted @ 2021-03-30 23:30 LBO.net 阅读(1000) 评论(0) 推荐(0) 编辑
//返回顶部