📅  最后修改于: 2023-12-03 15:30:37.631000             🧑  作者: Mango
Entity Framework 是一个 ORM(Object-Relational Mapping)框架,可以用它来操作数据库。它可以让开发者通过面向对象的方式来操作关系型数据库。
同时,Entity Framework 对开发者而言也提供了更加方便的开发方式:减少了编写 SQL 语句的负担,同时也简化了和数据库的交互,让开发者能够快速地开发数据相关的应用程序。
安装 Entity Framework 的步骤如下:
打开 Visual Studio ,进入 NuGet 包管理器(NuGet 包管理器可以通过搜索框在 Visual Studio 的顶部中找到)。
在搜索框中输入 Entity Framework ,点击搜索按钮。
在搜索结果中找到 EntityFramework ,点击安装按钮。
PM> Install-Package EntityFramework
在使用 Entity Framework 之前,需要先创建一个 DbContext(上下文)类,它的作用是连接数据库和实体类。以下是创建 DbContext 类的步骤:
public class MyContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
}
上面的代码创建了一个名为 MyContext 的上下文,它定义了一个名为 MyEntities 的 DbSet 属性,类型是 MyEntity 实体类。
在应用程序的配置文件(一般是 app.config)中添加数据库连接字符串。如 SQLite 数据库的连接字符串例如:
<connectionStrings>
<add name="MyContext" connectionString="data source=mydatabase.db"/>
</connectionStrings>
注意:为了使用 SQLite 数据库,需要在 NuGet 包管理器中搜索 SQLite ,然后安装 System.Data.SQLite 包。
实体类是映射到数据库中的表的定义。如果你想操作数据库中的数据,就需要先定义这个实体类。以下是定义实体类的步骤:
public class MyEntity
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
如上面创建 MyContext 类时的 MyEntities 属性。
以下是查询数据的步骤:
using(var context = new MyContext()) {
}
using(var context = new MyContext()) {
var entities = from e in context.MyEntities
where e.Age >= 18
select e;
foreach (var entity in entities) {
Console.WriteLine(entity.Name);
}
}
以下是插入数据的步骤:
var entity = new MyEntity() {
Name = "Tom",
Age = 18
};
using(var context = new MyContext()) {
context.MyEntities.Add(entity);
context.SaveChanges();
}
以下是更新数据的步骤:
using(var context = new MyContext()) {
var entity = context.MyEntities.First(e => e.Id == 1);
entity.Age = 20;
// ...
}
using(var context = new MyContext()) {
var entity = context.MyEntities.First(e => e.Id == 1);
entity.Age = 20;
context.SaveChanges();
}
以下是删除数据的步骤:
using(var context = new MyContext()) {
var entity = context.MyEntities.First(e => e.Id == 1);
context.MyEntities.Remove(entity);
context.SaveChanges();
}
以上就是 Entity Framework 的基本使用方式,通过使用 Entity Framework 可以大大提高开发效率和减少代码量,同时也更加方便地维护应用程序。