📅  最后修改于: 2023-12-03 15:14:52.721000             🧑  作者: Mango
Entity Framework 是 .NET 框架中的一个对象关系映射(ORM)工具,可简化开发者在应用程序中访问数据库的任务。通过 Entity Framework,开发者可以使用代码来操作数据库,而无需编写 SQL 查询语句。本文将介绍 Entity Framework 的数据库操作。
在使用 Entity Framework 执行数据库操作之前,我们需要创建一个继承自 DbContext
类的类,该类表示要访问的数据库,同时包含一组表示数据库的 DbSet<T>
属性。示例如下:
public class MyDbContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
public MyDbContext(string connectionString) : base(connectionString)
{
}
}
在上面的示例中,我们为 MyDbContext
类定义了两个 DbSet
属性,其中一个是 Customers
,它表示 Customer
实体对应的数据表,另一个是 Orders
,它表示 Order
实体对应的数据表。需要注意的是,我们的 MyDbContext
类应执行基类的构造函数,以指定要使用的数据库连接字符串。
添加实体到数据库中的过程简单而直观。我们可以使用 DbSet<T>.Add()
方法将新实体添加到数据库中。示例如下:
var customer = new Customer
{
Name = "张三",
Age = 30,
Email = "zhangsan@example.com"
};
using (var context = new MyDbContext(connectionString))
{
context.Customers.Add(customer);
context.SaveChanges();
}
在上面的示例中,我们创建了一个 Customer
实体并将其添加到 MyDbContext
类示例 context
中。然后,我们执行 SaveChanges()
方法以将更改保存到数据库中。
我们可以使用 Linq 查询表达式来从数据库中查询实体。例如,以下代码查询 Customers
表中所有的实体:
using (var context = new MyDbContext(connectionString))
{
var customers = context.Customers.ToList();
}
在上面的示例中,我们查询了 Customers
表中的所有实体,并将它们存储在 customers
变量中。需要注意的是,我们使用了 ToList()
方法来立即加载实体,这将导致查询尽可能快地执行。如果我们不使用该方法,查询不会立即执行,而是在迭代集合时按需执行。
我们可以使用 DbSet<T>.Remove()
方法将实体从数据库中删除。示例如下:
using (var context = new MyDbContext(connectionString))
{
var customer = context.Customers.Find(1);
context.Customers.Remove(customer);
context.SaveChanges();
}
在上面的示例中,我们从 MyDbContext
类中查询一个 Customer
实体,并将其删除。然后,我们执行 SaveChanges()
方法以保存更改。
我们可以使用以下代码更新数据库中的实体:
using (var context = new MyDbContext(connectionString))
{
var customer = context.Customers.Find(1);
customer.Name = "李四";
context.SaveChanges();
}
在上面的示例中,我们从 MyDbContext
类中查询一个 Customer
实体,并将其名称更改为“李四”。然后,我们执行 SaveChanges()
方法以保存更改。
在本文中,我们学习了如何使用 Entity Framework 执行数据库操作。我们创建了一个 MyDbContext
类,用于表示要访问的数据库,并包含一组 DbSet<T>
属性。我们了解了如何添加、查询、删除和更新实体,这是使用 Entity Framework 进行数据库操作的重要方面。