📜  Entity Framework-体系结构(1)

📅  最后修改于: 2023-12-03 15:00:36.422000             🧑  作者: Mango

Entity Framework-体系结构

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;"
Entity Framework 体系结构
ObjectContext

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

DbSet 是一个表示 Entity Framework 用于管理一组对象实体的类。

使用 DbSet 可以执行以下操作:

  • 添加新实体。
  • 查找或查询现有实体。
  • 更新现有实体。
  • 删除现有实体。

DbSet 可以在 ObjectContext 中声明:

public class MyDbContext : DbContext
{
    public DbSet<Customer> Customers { get; set; }
    public DbSet<Order> Orders { get; set; }

    // ...其他配置...
}
LINQ

Entity Framework 使用语言集成查询(LINQ)进行查询。LINQ 提供了一组强类型查询操作符,可用于从 DbSet 中查询数据。

using (var context = new MyDbContext())
{
    var customers = context.Customers.Where(c => c.Name.Contains("John")).ToList();
}
结论

Entity Framework 可以大大简化与数据库的交互。它提供了一个高层次的对象模型来管理实体和关系,并支持多个数据库管理系统。此外,它集成了 LINQ 查询语言,使查询变得简单而且直观。