📅  最后修改于: 2023-12-03 15:06:57.616000             🧑  作者: Mango
在现代软件开发中,许多应用都需要与数据库进行交互。 Entity Framework Core是.NET应用程序中最受欢迎的ORM(对象关系映射)框架之一。 它提供了一种将数据库中的数据映射到.NET对象的便捷方式。在本文中,我们将讨论如何使用现有数据库的实体框架核心基因类来实现数据交互。
首先,我们需要创建一个.NET Core项目。 在Visual Studio 2017中,我们可以选择“新建项目”>“Visual C#”>“ASP.NET Core Web应用程序”。 接下来,我们需要命名应用程序,并选择.NET Core作为目标框架。接下来,我们需要选择应用程序模板。 在这种情况下,我们选择“Web应用程序(.NET Core)”。
现在,在我们的项目中添加Entity Framework Core依赖项。我们可以通过NuGet包管理器或手动编辑.csproj文件来完成此操作。要使用NuGet包管理器,请右键单击“依赖项”>“管理NuGet包”。
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.12" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.12" />
接下来,让我们创建实体模型。我们将使用AdventureWorksLT示例数据库。有关该数据库的更多信息,请参见此处。为了创建实体模型,我们需要使用如下命令行工具:
Scaffold-DbContext -Connection "Server=(localdb)\MSSQLLocalDB;Database=AdventureWorksLT2017;Trusted_Connection=True;" -Provider "Microsoft.EntityFrameworkCore.SqlServer" -OutputDir Models
上述命令将使用连接字符串连接到我们的数据库并生成实体模型。生成的代码将位于Models文件夹中。你可以看到生成的所有模型类和DBContext类。
我们的实体模型准备就绪。我们现在将编写数据处理代码并与数据库进行交互。让我们考虑编写将所有客户添加到数据库的代码。对于这个例子,我们将使用客户模型。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using YourApplicationName.Models;
namespace YourApplicationName.Controllers
{
[ApiController]
[Route("[controller]")]
public class CustomersController : ControllerBase
{
private readonly AdventureWorksLTContext _context;
public CustomersController(AdventureWorksLTContext context)
{
_context = context;
}
[HttpPost]
public async Task<ActionResult<Customer>> Create(Customer customer)
{
_context.Customer.Add(customer);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(Get), new { id = customer.CustomerId }, customer);
}
[HttpGet("{id}")]
public async Task<ActionResult<Customer>> Get(int id)
{
var customer = await _context.Customer.FindAsync(id);
if (customer == null)
{
return NotFound();
}
return customer;
}
[HttpGet]
public async Task<ActionResult<IEnumerable<Customer>>> GetAll()
{
return await _context.Customer.ToListAsync();
}
}
}
现在,我们已准备好在浏览器中运行我们的应用程序,并查看我们刚刚编写的代码是否有效。
dotnet run
转到“https://localhost:5001/customers”以查看所有客户列表。要添加客户,请按照“POST https://localhost:5001/customers”中所述的格式向API发送一个POST请求。要查找单个客户,请按照“GET https://localhost:5001/customers/{id}”中所述的格式发送GET请求。
通过使用现有数据库的实体框架核心基因类,我们可以方便地将数据库中的数据映射到.NET对象。在本教程中,我们演示了如何创建实体模型,如何编写数据处理代码以及如何在ASP.NET Core应用程序中使用实体框架核心。 相信本教程会对你的编程旅程有所帮助。