下面我来详细讲解ASP.NET Core使用EF SQLite对数据库增删改查的完整攻略。这个过程包含以下步骤:
- 创建ASP.NET Core项目并添加EF SQLite支持
- 创建数据模型类
- 创建数据库上下文类
- 创建CRUD操作的API接口
- 运行应用程序检查功能
下面对每个步骤进行详细说明。
- 创建ASP.NET Core项目并添加EF SQLite支持
首先在Visual Studio中创建一个新的ASP.NET Core项目,并选择Web API作为项目模板。在创建的过程中,需要确保勾选上“使用Entity Framework”选项并选择SQLite作为数据库提供程序。
- 创建数据模型类
创建数据模型类可用于定义我们要处理的数据实体结构。在本示例中,我们需要创建一个模型类表示学生实体。可以在解决方案资源管理器中右键单击项目,并选择添加->新建文件然后选择“类”模板。具体代码如下:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime DateOfBirth { get; set; }
}
这个模型类中有三个属性:Id、Name和DateOfBirth,它们分别对应学生实体的ID、姓名和出生日期。
- 创建数据库上下文类
创建数据库上下文类用于定义数据库连接和数据表之间的映射关系。可以在解决方案资源管理器中右键单击项目,并选择添加->新建文件然后选择“类”模板,代码如下:
public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { }
public DbSet<Student> Students { get; set; }
}
这个上下文类继承了Entity Framework的DbContext类,并定义了一个DbSet属性,用于处理Student实体集。在这个类中,我们需要重载构造函数,在其参数中添加DbContextOptions选项并在其基础构造函数中调用。
- 创建CRUD操作的API接口
创建CRUD操作的API接口。API接口提供以下四个操作:GET(获取所有数据)、PUT(更新数据)、POST(创建数据)和DELETE(删除数据),这些操作支持相应HTTP方法。在解决方案资源管理器中,右键单击控制器文件夹并选择添加->控制器。选择“Web API Controller with actions, using Entity Framework”模板,并让其放在上面定义的控制器文件夹内,代码如下:
[Route("api/[controller]")]
[ApiController]
public class StudentsController : ControllerBase
{
private readonly MyDbContext _context;
public StudentsController(MyDbContext context)
{
_context = context;
}
[HttpGet]
public async Task<ActionResult<IEnumerable<Student>>> GetStudents()
{
return await _context.Students.ToListAsync();
}
[HttpGet("{id}")]
public async Task<ActionResult<Student>> GetStudent(int id)
{
var student = await _context.Students.FindAsync(id);
if (student == null)
{
return NotFound();
}
return student;
}
[HttpPut("{id}")]
public async Task<IActionResult> PutStudent(int id, Student student)
{
if (id != student.Id)
{
return BadRequest();
}
_context.Entry(student).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!StudentExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
[HttpPost]
public async Task<ActionResult<Student>> PostStudent(Student student)
{
_context.Students.Add(student);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetStudent), new { id = student.Id }, student);
}
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteStudent(int id)
{
var student = await _context.Students.FindAsync(id);
if (student == null)
{
return NotFound();
}
_context.Students.Remove(student);
await _context.SaveChangesAsync();
return NoContent();
}
private bool StudentExists(int id)
{
return _context.Students.Any(e => e.Id == id);
}
}
这个控制器类包含了GetStudents、GetStudent、PutStudent、PostStudent和DeleteStudent方法,它们可以对学生的数据进行增删改查操作。
- 运行应用程序检查功能
最后,我们需要运行我们的应用程序来检查是否能正常工作。在Visual Studio的顶部工具栏中,按下F5以启动调试器。启动后,可以使用浏览器或其他HTTP客户端应用程序尝试调用API接口并检查其输出是否符合预期。
以上就是ASP.NET Core使用EF SQLite对数据库增删改查的完整攻略,示例代码就是我们上面提到的那个控制器类。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET Core使用EF SQLite对数据库增删改查 - Python技术站