由于篇幅限制,我将提供一个简化的代码实例,展示如何在ASP.NET Core项目中使用Entity Framework Core与SQL Server数据库进行交互。
首先,安装必要的NuGet包:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Design
定义模型:
using System.ComponentModel.DataAnnotations;
public class Book
{
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Author { get; set; }
// 其他属性...
}
创建数据库上下文:
using Microsoft.EntityFrameworkCore;
public class LibraryContext : DbContext
{
public DbSet<Book> Books { get; set; }
public LibraryContext(DbContextOptions<LibraryContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// 自定义模型配置...
}
}
在Startup.cs
中配置服务和数据库上下文:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<LibraryContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// 其他服务配置...
}
在appsettings.json
中配置连接字符串:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=LibraryDB;Trusted_Connection=True;"
}
}
在控制器中使用数据库上下文:
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
public class BooksController : Controller
{
private readonly LibraryContext _context;
public BooksController(LibraryContext context)
{
_context = context;
}
// 获取所有图书
public IActionResult Index()
{
return View(_context.Books.ToList());
}
// 创建新图书
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create([Bind("Id,Title,Author")] Book book)
{
if (ModelState.IsValid)
{
_context.Add(book);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(book);
}
// 其他动作方法...
}
以上代码提供了一个简单的示例,展示了如何在ASP.NET Core应用程序中集成Entity Framework Core以及如何使用数据库上下文与SQL Server数据库交互。这个示例包括创建模型、配置数据库连接、定义数据库上下文和在控制器中使用上下文来获取和保存数据。这个过程是开发校园图书管理系统的一个基础,并且为进一步开发提供了一个清晰的框架。