使用EF6操作Oracle数据库的实例分享
Entity Framework(EF)在.NET开发中被广泛应用,它简化了与数据库的交互流程,无需编写复杂的SQL语句,只需要通过定义数据模型和调用API即可完成相关操作。本文将分享使用EF6操作Oracle数据库的实例,希望能对正在使用EF框架开发的开发者提供帮助。
1.环境配置
我们需要安装EF6 和Oracle.ManagedDataAccess NuGet包。安装命令如下:
Install-Package EntityFramework -Version 6.4.4
Install-Package Oracle.ManagedDataAccess -Version 19.10.0
在配置连接字符串时,需要注意使用Oracle.ManagedDataAccess客户端,以保证与Oracle数据库的操作正常。示例代码如下:
providerName="Oracle.ManagedDataAccess.Client"
connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=XE)));User Id=xxx;Password=xxx"
/>
2.定义数据模型
EF6支持通过Code First方式定义数据模型,我们可以在代码中定义实体类,而EF根据这些实体类来生成数据库表。示例如下:
[Table("UserInfo")]
public class UserInfo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required(ErrorMessage = "UserName is required")]
[StringLength(20, ErrorMessage = "UserName length can't be more than 20")]
public string UserName { get; set; }
[StringLength(20, ErrorMessage = "Name length can't be more than 20")]
public string Name { get; set; }
[StringLength(30, ErrorMessage = "Eml length can't be more than 30")]
public string Eml { get; set; }
[StringLength(20, ErrorMessage = "Mobile length can't be more than 20")]
public string Mobile { get; set; }
}
3.操作数据库
通过EF,我们可以使用很多语句来进行数据库操作。下面是一些示例:
(1)查询操作:
using (var context = new OracleDbContext())
{
var users = context.UserInfo.ToList();
foreach (var user in users)
{
Console.WriteLine(user.UserName);
}
}
(2)插入操作:
using (var context = new OracleDbContext())
{
var user = new UserInfo
{
UserName = "testuser",
Name = "Test User",
Eml = "testuser@test.com",
Mobile = "13912345678"
};
context.UserInfo.Add(user);
context.SaveChanges();
}
(3)更新操作:
using (var context = new OracleDbContext())
{
var user = context.UserInfo.Where(u => u.UserName == "testuser").FirstOrDefault();
if (user != null)
{
user.Mobile = "13812345678";
context.SaveChanges();
}
}
(4)删除操作:
using (var context = new OracleDbContext())
{
var user = context.UserInfo.Where(u => u.UserName == "testuser").FirstOrDefault();
if (user != null)
{
context.UserInfo.Remove(user);
context.SaveChanges();
}
}
4.总结
本文介绍了使用EF6操作Oracle数据库,通过示例代码展示了数据库的增删改查操作。使用EF6可以大大简化与数据库的交互流程,让我们专注于业务逻辑的开发。当然,不同的数据库管理系统需要适配不同的EF客户端,大家在使用过程中需要多加注意。
代码示例:https://github.com/Leolijie/EFOperateOracleDBDemo