EF轻松连接Oracle数据库 (ef 连接Oracle数据库)

在现代化的企业应用程序开发中,许多应用都需要使用关系型数据库存储和管理数据。Microsoft的实体框架(EF)是一种ORM(对象关系映射)工具,允许开发人员使用面向对象的模型操作数据库,而无需手动编写SQL查询语句。虽然EF最初是针对SQL Server数据库开发的,但它也可以轻松地与其他关系型数据库进行集成,例如Oracle数据库。本文将介绍如何使用EF和Oracle数据库快速和简单地构建企业应用程序。

1. 安装Oracle数据提供程序

您需要在开发机器上安装Oracle数据提供程序。这可以是Oracle Data Access Components(ODAC)或Oracle Developer Tools for Visual Studio(ODT)。两者都包含链接Oracle数据库所需的驱动程序和其他必要组件。例如,ODAC包括Oracle.Data.EntityFramework6 NuGet包。

2. 创建EF数据访问层

接下来,您需要创建一个EF数据访问层,以便在应用程序中使用EF。这可以通过使用ASP.NET Core Web应用程序模板的“空”选项来实现。然后,您可以通过在Visual Studio的“工具”菜单中选择“NuGet包管理器”并搜索“EntityFramework.Oracle”,来安装与Oracle一起使用的EF扩展程序包。此软件包允许EF与Oracle数据库进行无缝交互。

3. 配置应用程序链接字符串

在开始编写代码之前,您需要在应用程序中添加与Oracle数据库的连接字符串。在“appsettings.json”文件(这是用于存储应用程序设置的ON文件)中,添加以下代码:

“OracleConnection”: {

“ConnectionString”: “Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myOracleHost)(PORT=myOraclePort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=myOracleServiceName)));User Id=myOracleUserId;Password=myOraclePassword;”

}

这是一个标准Oracle连接字符串,您需要将其中的“myOracleHost”、“myOraclePort”、“myOracleServiceName”、“myOracleUserId”和“myOraclePassword”分别替换为实际的连接字符串。

4. 创建EF实体

在以上步骤配置完毕之后,您可以创建数据库实体类。这些类代表数据库表,EF使用它们来执行CRUD操作(创建、读取、更新、删除)。通过在EF数据访问层中创建一个新文件夹,“Models”,并添加一个新类,即可开始创建实体类。下面是一个例子:

public class Employee

{

public int EmployeeId { get; set; }

public string FirstName { get; set; }

public string LastName { get; set; }

public string Eml { get; set; }

public DateTime HireDate { get; set; }

}

这是一个代表Employee表的实体类,其中包含员工的几个属性。注意,EF默认使用约定来选择数据库表和列,并将实体类中的属性映射到数据库表列。如果表或列名与默认约定不同,则可以使用Data Annotations或Fluent API(EF中流利的API接口)来进行自定义映射。

5. 初始化EF数据上下文

接下来,您需要创建EF数据上下文。该上下文代表了整个数据库,它可以跨多个表进行查询、添加、更新或删除操作。但是,这里需要注意的是:EF数据上下文是应用程序中对EF功能的入口点。在ASP.NET Core应用程序中,该上下文通常使用依赖注入(DI)在Startup.cs文件中进行配置。下面是一个简单的例子:

public class EmployeeContext : DbContext

{

public DbSet Employees { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

{

optionsBuilder.UseOracle(Configuration.GetConnectionString(“OracleConnection”));

}

}

这是一个代表Employee数据库表的数据上下文类。在这个类中,您需要设置EF与Oracle数据库之间的链接,并为每个实体类定义一个DbSet属性。请注意,这个上下文类是从EF的DbContext类派生出来的。

6. 编写实体操作

一旦EF数据访问层、连接字符串、实体类和数据上下文都设置好了,就可以开始编写CRUD操作了。在以下示例中,我们将实现在Employee表中创建、读取、更新和删除员工的操作:

– 创建:

using (var context = new EmployeeContext())

{

var newEmployee = new Employee

{

FirstName = “John”,

LastName = “Doe”,

Eml = “johndoe@eml.com”,

HireDate = DateTime.Now

};

context.Employees.Add(newEmployee);

context.SaveChanges();

}

这是一个简单的代码片段,它将一个新Employee对象添加到数据库,并将更改保存到数据库。

– 读取:

using (var context = new EmployeeContext())

{

var employees = context.Employees.ToList();

foreach (var employee in employees)

{

Console.WriteLine($”Employee Id: {employee.EmployeeId}, Name: {employee.FirstName} {employee.LastName}, Eml: {employee.Eml}, Hire Date: {employee.HireDate}”);

}

}

这是一个简单的代码片段,它读取Employee表中的所有行,将它们打印到控制台上,并显示员工的姓名、电子邮件和雇佣日期。

– 更新:

using (var context = new EmployeeContext())

{

var employeeToUpdate = context.Employees.FirstOrDefault(e => e.EmployeeId == 1);

if (employeeToUpdate != null)

{

employeeToUpdate.FirstName = “Jane”;

employeeToUpdate.LastName = “Doe”;

context.SaveChanges();

}

}

这是一个简单的代码片段,它找到Employee表中ID为1的员工并将其姓名更新为“Jane Doe”。

– 删除:

using (var context = new EmployeeContext())

{

var employeeToDelete = context.Employees.FirstOrDefault(e => e.EmployeeId == 1);

if (employeeToDelete != null)

{

context.Employees.Remove(employeeToDelete);

context.SaveChanges();

}

}

这是一个简单的代码片段,它找到Employee表中ID为1的员工并将其从数据库中删除。

7. 测试和部署应用程序

您需要对应用程序进行单元测试,并将其部署到生产环境中。通过这些步骤,您可以将Oracle数据库集成到您的企业应用程序中,并使用EF来轻松创建、读取、更新和删除数据库记录。

结论


数据运维技术 » EF轻松连接Oracle数据库 (ef 连接Oracle数据库)