EF Core:一统 SQL 和 NoSQL 数据库

  • Jonathan Allen
  • 盖磊

2018 年 3 月 11 日

话题:.NET语言 & 开发

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

推出 EF Core 的初衷之一,就是开发出一种可在很少甚至不更改代码的情况下使用 SQL 和 NoSQL 数据库的模型。Microsoft 正向此目标迈出第一步,发布了用于 Azure Cosmos DB 的实验性 EF 提供程序(provider)。据EF 2.1 路线图介绍:

Cosmos DB 提供程序预览:我们一直开发用于 Cosmos DB 中 DocumentDB API 的 EF Core 提供程序。这是我们推出的首个文档数据库提供程序,从此实践中获得的经验教训,将为 2.1 版之后的设计提供指引。当前,我们计划在 2.1 版中发布 Cosmos DB 提供程序的早期预览版。

InfoQ 前期曾报道过,Azure Cosmos DB是一种“多模型”NoSQL 数据库。它可作为文档数据库使用,类似于已停用的 Azure DocumentDB,或是类似于使用 MongoDB API。它也可作为基本的键值表使用、基于 Gremlin 实现图形数据库,或是使用 Cassandra API 实现时序数据库。

UseDocumentDB()是 EF Core 为支持 NoSQL 而推出的首个新 API。它的输入是 URL、键值和数据库名,替代了数据库连接字符串。

NoSQL 数据库同样可使用dbContext.Database.EnsureCreated(),并且删除数据库也很简单,调用dbContext.Database.EnsureDeleted()即可。除此以外,所有 API 的使用,与基于 EF 的正常应用操作存储在 SQL Server 中的数据一样。

Channel 9 给出的演示中,并将数据真实存储在一个典型的 NoSQL 层次文档中,而是和正常的数据库一样,在不同的的集合中存储BlogPost对象。相关文档目前依然尚未发布,因此现在解释如何配置这些行为还为时尚早。

查看英文原文: EF Core: Unifying SQL and NoSQL Databases

.NET语言 & 开发