EF Core为Oracle数据库带来无与伦比的高级支持(ef对oracle支持)

在 .NET Core 领域中,Entity Framework(Core)包括许多数据库类型的支持,例如:SQL Server,MySQL,PostgreSQL等等,但是在与Oracle DB 相关联的开发中,EF(Core) 在以前的版本中一直被诟病,但是随着 EF Core 3.0 的发布,情况开始让人称赞。

EF Core 3.0提供了许多 Oracle 兼容性解决方案,例如,将其 IQueryable 实现与Oracle数据库适配器整合,在这种情况下,我们可以快速、容易地创建适配器(类似的,这个适配器一样可以支持 MySql、PostgreSQL等其他的数据库)。

在 Oracle DB 领域中,Oracle 适配器提供了以下特性:

– 基础支持:包括各种类型的加密支持,Oracle 的默认时间的处理等等。

– 常规查询:对于常规查询,包括括号优先级和全局查询过滤支持。

– 前缀和后缀查询:可以使用 Oracle 的正则表达式来支持模糊查询。

– Oracle DATE 类型的支持:比如 DateTime 和 DateTimeOffset 的支持。

– Oracle NUMBER 类型的支持:这种类型不仅支持基本类型(decimal,double),同时支持数字类型。

– Oracle 字符打印支持:这是在Debug/TraceOracle执行命令时候输出的一种帮助您调试命令的字符输出。

– Oracle 字符串的支持:可以支持 CLOB 和 BLOB 字符串类型。

在使用 EF Core 与 Oracle DB 结合时,您需要使用以下两种方式之一:

– 在 Microsoft.EntityFrameworkCore.Oracle 包中使用 Oracle.EntityFrameworkCore 包。

– 在 Microsoft.EntityFrameworkCore.Relational 包中使用任何厂商提供的包。

第一种方式是最容易使用。我们可以通过在项目.json 文件中添加以下类库来使用 EF Core 对 Oracle 的支持:

“dependencies”: {

“Microsoft.EntityFrameworkCore”: “3.1.6”,

“Oracle.EntityFrameworkCore”: “2.19.60”,

“Oracle.ManagedDataAccess.Core”: “2.19.6”,

}

安装以上依赖后,便可以通过代码生成工具,例如 Scaffold-DBContext, 快速创建数据库实体类,然后可以通过 IQueryables 和其他的 normal Linq查询方式来处理数据。

下面的代码演示使用 IQueryable 来查询数据库:

using(var context = new SampleContext())

{

var query = from b in context.Books

select b;

var books = query.ToList();

}

从上面的查询可以看到,使用 Linq 语法实现的查询非常简单。

在最近的 EF Core 3.0版本中,Oracle 数据库的支持得到了大幅度的提升。由于 ORACLE 的数据库特性、高效以及 DevOps 快速部署的特性,EF Core 凭借其 Oracle 数据库的支持,使人们在 .NET Core 领域中获得了极好的用户体验。


数据运维技术 » EF Core为Oracle数据库带来无与伦比的高级支持(ef对oracle支持)