本文将分析Sqlite、SQL Server、MongoDB三种数据库在ASP.NET Core项目实际开发中可能会遇到的问题。
为你在项目架构数据库选择时,提前给出一些参考意见。
介绍说明
Sqlite
关系型嵌入式数据库,只需引用一个文件即可读写数据库文件,不需要安装服务框架。查询受硬盘读写速度影响(现在的服务器SSD硬盘速度极快),如果你只是要做一个内容发布类项目,它的优势相当明显。推荐使用SQLite Expert管理数据库。
SQL Server
同Sqlite一样同属关系型数据库,安装比较麻烦,对服务器要求较高。但是支持分布式等Sqlite不具备的特性,与ASP.NET能很好的结合起来。
MongoDB
Nosql文档数据库,与Sqlite一样有跨平台优势。集合中的项没有规则限制,支持正则表达式查询。Windows上安装比较方便,一直点击下一步即可。推荐使用Robo 3T管理数据库。
事务处理
这三个数据库都支持事务、回滚功能,MongoDB需要4.0及以上才支持事务。
需要特别说明的是Sqlite的事务锁是文件锁,这对于高并发写的环境并不理想。
Entity Framework(实体框架)
非常遗憾MongoDB目前不支持EF框架,但是C#提供程序支持实体操作和Linq查询。
附带参考:EF Code概述、工具和扩展
网友评论