📅  最后修改于: 2023-12-03 15:00:36.418000             🧑  作者: Mango
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 类,以便 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 类和连接字符串,我们就可以开始使用 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 代码。这种方法可以大大加快应用程序的开发速度,减少错误和重复工作。