ASP.NET Core实战:指南教你如何应用Entity Framework

1 下载量 53 浏览量 更新于2024-08-04 收藏 157KB DOCX 举报
"这篇文档详细介绍了如何在ASP.NET Core中应用Entity Framework,特别指出.NET Core的库与经典.NET Framework的不兼容性,并提供了在ASP.NET Core环境下配置和使用Entity Framework的步骤,包括前期准备、创建数据库、建立项目以及安装必要的包。" 在ASP.NET Core中应用Entity Framework是一个常见的数据访问技术,用于简化数据库操作。由于.NET Core和经典.NET Framework的库不兼容,开发者需要使用专门为.NET Core设计的Entity Framework版本,即Entity Framework Core。以下是详细的步骤: 前期准备: 1. 开发环境:建议使用Visual Studio 2015 Update 3作为集成开发环境(IDE),可以在此处下载:[链接](https://www.jb51.net/softjc/446184.html)。 2. .NET Core环境:需要安装.NET Core的运行时和开发工具,推荐使用Visual Studio的版本,可在这里获取:[链接](https://www.jb51.net/softs/472362.html)。 3. 数据库:确保拥有一个SQL Server数据库,例如创建名为`TestNetCoreEF`的数据库,并包含一个`Student`表,表结构如下: ```sql CREATE DATABASE TestNetCoreEF GO USE TestNetCoreEF GO CREATE TABLE Student( ID int identity primary key, Name nvarchar(50), Age int ) INSERT INTO Student VALUES('Bear',18) INSERT INTO Student VALUES('Frank',20) ``` 创建项目: 在Visual Studio中,选择“ASP.NET Core Web Application (.NET Core)”项目模板,输入项目名称如`TestEFInNetCore`,然后选择“Web Application”模板,并在身份认证选项中选择"No Authentication"。 安装Entity Framework: 打开“工具”->“NuGet包管理器”->“包管理控制台”,在包管理控制台中输入以下命令安装所需的包: - `Install-Package Microsoft.EntityFrameworkCore.SqlServer`:安装用于SQL Server的Entity Framework Core提供程序。 - `Install-Package Microsoft.EntityFrameworkCore.Tools -Pre`:安装Entity Framework Core的工具包,预览版本。 - `Install-Package Microsoft.EntityFrameworkCore.Design`:安装设计时服务,用于代码第一或数据库第一的模型生成。 配置项目: 在`Startup.cs`文件中,添加以下代码到`ConfigureServices`方法来注册DbContext: ```csharp services.AddDbContext<MyDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); ``` 这里的`MyDbContext`是自定义的DbContext类,需要继承自`Microsoft.EntityFrameworkCore.DbContext`,并包含数据库实体的定义。 数据库上下文类: 创建一个名为`MyDbContext`的类,继承自`DbContext`,并包含数据库实体的`DbSet`属性: ```csharp public class MyDbContext : DbContext { public DbSet<Student> Students { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")); } } ``` 模型映射: 如果采用DBFirst(数据库优先)的方法,可以使用`Scaffold-DbContext`命令根据现有数据库生成模型类和上下文类。在包管理控制台中输入: ```csharp Scaffold-DbContext "Server=<YourServer>;Database=<YourDatabase>;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context MyDbContext -f ``` 请替换`<YourServer>`和`<YourDatabase>`为实际的数据库连接信息。 完成以上步骤后,你就可以在ASP.NET Core应用中使用Entity Framework Core进行数据库操作了。例如,通过`DbContext`实例查询数据: ```csharp using (var context = new MyDbContext()) { var students = context.Students.ToList(); foreach (var student in students) { Console.WriteLine($"Name: {student.Name}, Age: {student.Age}"); } } ``` ASP.NET Core中的Entity Framework Core提供了与经典.NET Framework下相似的数据访问功能,但需要注意配置和依赖包的差异。通过正确的设置和操作,开发者可以充分利用Entity Framework Core的强大功能来处理ASP.NET Core应用的数据层。