📜  Entity Framework-代码优先方法(1)

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

Entity Framework-代码优先方法

简介

Entity Framework 是一个开源的 ORM 框架,可以使 C# 程序员以面向对象的方式访问数据库。使用代码优先方法,我们可以通过编写 C# 类来创建数据库表,并定义它们之间的关系,最后由 Entity Framework 自动创建数据库和表。

安装

我们可以使用 NuGet 管理器安装 Entity Framework。

打开 Visual Studio 2019,选择“工具”>“NuGet 管理器”>“程序包管理器控制台”。

在控制台中,键入以下命令:

Install-Package EntityFramework

安装成功后,我们可以开始使用 Entity Framework 的代码优先方法了。

创建模型类

创建模型类是我们使用代码优先方法的第一步。模型类通常定义了数据库表的结构和属性。例如,我们可以创建一个名为“User”的模型类,它包含一个名为“Id”的属性,还有名为“Name”和“Email”的两个字符串属性:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
}
创建 DbContext 类

与模型类相对应,我们还需要创建一个 DbContext 类,以便 Entity Framework 可以使用它来管理数据库连接、插入、更新和删除操作。

我们可以创建一个名为“UserContext”的类,并在其中添加一个名为“Users”的 DbSet 属性,以便我们可以使用它来访问 User 数据表:

public class UserContext : DbContext
{
    public DbSet<User> Users { get; set; }
}

请注意,我们需要将 User 类作为泛型类型参数传递给 DbSet。

配置数据库连接字符串

在 DbContext 类的构造函数中,我们需要为 Entity Framework 提供一个数据库连接字符串。最简单的方法是在 App.config 或 Web.config 文件中创建一个名为“UserContext”的连接字符串配置节,如下所示:

<connectionStrings>
  <add name="UserContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=UserDatabase;Integrated Security=True"
       providerName="System.Data.SqlClient" />
</connectionStrings>

此示例使用 SQL Server Express 的本地数据库,并指定“UserDatabase”为其初始目录。您可以根据自己的需要更改这些值。注意,您需要将 System.Data.SqlClient 作为提供程序名称提供,以让 Entity Framework 知道使用 SQL Server。

使用 DbContext 函数

一旦我们配置好了模型类、DbContext 类和连接字符串,我们就可以开始使用 Entity Framework 执行 CRUD 操作。例如,我们可以使用以下代码创建一个新的 User 对象,并在数据库中插入它:

using (var db = new UserContext())
{
    var user = new User { Name = "John Smith", Email = "john.smith@example.com" };
    db.Users.Add(user);
    db.SaveChanges();
}

请注意,我们在 using 代码块中创建了 UserContext 实例,这样我们就可以确保它在完成操作后被正确释放。由于 db.Users 是一个 DbSet 属性,我们可以像使用一个常规集合对象一样添加新 User,并使用 SaveChanges() 方法将更改保存到数据库中。

总结

使用 Entity Framework 的代码优先方法,我们可以通过声明 C# 类来定义数据库表和对象之间的关系,而不必手动编写 SQL 代码。这种方法可以大大加快应用程序的开发速度,减少错误和重复工作。