EFCore 实体命名约定库:EFCore.NamingConventions 在软件开发中,数据库是一个重要话题,有不同的流派,一些人支持手写SQL,另一些喜欢ORM。介绍了EFCore.NamingConventions库,可在EFCore中指定实体命名约束规则,简化属性与数据库表字段映射,提高团队效率。示例展示了使用SnakeCaseNamingConvention生成数据库表字段,强调约定大于配置的重要性。团队应记录数据库规范,以避免配置混乱或新人不了解约定。这个库有利于标准化命名,提高开发效率。
浅议 EF Core 分库分表及多租户架构的实现 Payne在他的博客中探讨了在EF Core中实施分库、分表和多租户架构的可能性。他介绍了分库、分表的目的是提高数据库查询性能,讨论了路由策略以及可能带来的问题。针对多租户架构,他展示了如何使用`HasQueryFilter()`方法在单数据库中实现多租户隔离。最后,他强调了这些方法的适用性与潜在问题,并鼓励读者根据业务需求进行取舍。 Payne的博客提供了深入的技术讨论,展示了他对技术的追求和探索精神。
Dapper.Contrib 在 Oracle 环境下引发 ORA-00928 异常问题的解决 本文讨论了在使用 Dapper.Contrib 操作 Oracle 数据库时遇到的 ORA-XXXXX 错误,根本原因在于 Dapper.Contrib 未实现 OracleSqlAdapter,这与对自增 ID 的支持导致的 SQL 标准差异有关。文章指出不同数据库对自增 ID 实现方式不同,Oracle 需要序列,增加了维护工作量,且 Dapper.Contrib 底层设计不合理,缺乏扩展接口,违反开闭原则。作者提出了解决方法,包括自定义OracleSqlAdapter和扩展方法,以适配Oracle环境下的Dapper.Contrib使用。
关于单位转换相关问题的常见思路 作者在文章中讨论了其在工作过程中遇到的一个单位转换的问题,并通过不同方案进行解决。文章首先描述了作者感受到的工作压力,导致其反思人类问题的本质,而非寻求最优解。在具体业务场景中,作者讲述了客户要求将重量单位统一转换为吨,作者首先尝试了在视图增加字段的方式,但很快意识到需要更复杂的数据映射处理。通过使用 AutoMapper 工具,作者实现了重量单位的转换,同时避免了在映射规则中写入过多业务逻辑。此外,作者还提到了在设计数据库表结构时考虑单位转换的必要性,以及在实际应用中如何通过反射等技术在数据库层面进行单位转换。文章最终表达了对客户需要的积极回应和对工作中遇到的各种规则的适应,同时略微讽刺了工作中的加班文化以及个人对简单生活的向往。
Redis 缓存技术学习系列之 Lua 脚本 Payne在他的博客中分享了关于Redis中Lua脚本的学习,探讨了如何通过Redis内置的Lua解释器执行脚本,以及为什么选择脚本语言进行开发。他介绍了Redis中处理脚本的Eval系列和Script系列命令的用法,以及如何在Redis中使用Lua脚本进行交互。此外,他展示了如何通过具体案例演示Redis与Lua脚本的交互,并讨论了Lua数据结构与Redis数据结构之间的转换。最后,他分享了为什么使用Lua脚本以及在处理类型转换时的一些原则。整体而言,他强调了Lua脚本在Redis中的应用和重要性。
Redis 缓存技术学习系列之事务处理 本文讨论了Redis中的事务处理技术。在数据库事务部分解释了事务概念,ACID属性以及事务处理的重要性。在Redis中,事务可以看作是一个命令队列,通过MULTI开始一个事务,然后逐条向Redis提交命令,最后通过EXEC执行事务。Redis中的事务与传统事务类似,具有原子性和一致性。文章还介绍了悲观锁和乐观锁的概念,以及Redis中的check-and-set机制。另外,文章提及了如何管理Redis的键,包括惰性删除和定期删除策略,以及一些建议如临时键和普通键的使用等。
Redis 缓存技术学习系列之邂逅 Redis 这篇文章介绍了对传统关系型数据库的一些看法,引入了学习 Redis 缓存技术的决定。详细解释了 Redis 的定义、特点和优势,以及如何开始使用 Redis,包括编译和安装步骤。进一步介绍了 Redis 中支持的数据类型,如字符串、散列、列表、集合和有序集合,以及与键相关的命令。最后,作者强调了在学习技术时注重整体理解,留下细节问题在实际使用时查阅文档的重要性,并展望了对 Redis 的事务、脚本、发布/订阅和多语言使用的关注。
Unity3D 游戏开发之 SQLite 让数据库开发更简单 本文介绍了在Unity3D游戏开发中使用SQLite数据库的相关内容。SQLite是一款轻型的关系型数据库管理系统,适用于嵌入式设备和各种编程语言。文章详细介绍了SQLite的特性、选择原因,以及在Unity3D中使用SQLite的方法和示例代码。同时分享了一个SQLite辅助类SQLiteHelper.cs的代码,实现了数据库和数据表的创建以及基本操作。最后提供了不同平台上数据库存储路径的相关信息。