📅  最后修改于: 2023-12-03 15:00:36.422000             🧑  作者: Mango
Entity Framework 是一个对象关系映射(ORM)框架,它是 Microsoft 开发的,用于在 .NET 应用程序中从关系数据库中作为对象访问数据。
Entity Framework 允许我们使用多种数据库管理系统(DBMS)。它可以与 Microsoft SQL Server、Oracle、MySQL 和 PostgreSQL 等数据库协作。
在使用 Entity Framework 之前,必须指定一个有效的连接字符串,以便应用程序可以与数据库进行通信。连接字符串包含数据库的名称和位置以及用于连接的身份验证凭据。
连接字符串的格式如下:
"Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
或者也可以使用 Windows 身份验证:
"Server=myServerAddress;Database=myDataBase;Integrated Security=True;"
ObjectContext 是 Entity Framework 中最核心的类之一。它代表与数据库进行交互的上下文环境。
ObjectContext 管理实体集、关系、事务和变更跟踪等操作。它包含有关如何连接到数据源并执行特定数据源上下文的信息。
ObjectContext 的基本用法如下:
using (var context = new MyDbContext())
{
// 执行操作
}
ObjectContext 中的主要实体是对象实体,它表示通常由一行数据填充的实体。对象实体映射到数据库表中的行。在 C# 中,它是一个包含属性的类。
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
// 可以添加关联属性
public List<Order> Orders { get; set; }
}
DbSet 是一个表示 Entity Framework 用于管理一组对象实体的类。
使用 DbSet 可以执行以下操作:
DbSet 可以在 ObjectContext 中声明:
public class MyDbContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
// ...其他配置...
}
Entity Framework 使用语言集成查询(LINQ)进行查询。LINQ 提供了一组强类型查询操作符,可用于从 DbSet 中查询数据。
using (var context = new MyDbContext())
{
var customers = context.Customers.Where(c => c.Name.Contains("John")).ToList();
}
Entity Framework 可以大大简化与数据库的交互。它提供了一个高层次的对象模型来管理实体和关系,并支持多个数据库管理系统。此外,它集成了 LINQ 查询语言,使查询变得简单而且直观。