在本部分中,将使用 EF 中的Code First 迁移为数据库设定测试数据的种子。
从 “工具 ”菜单中选择“ NuGet 包管理器”,然后选择“ 包管理器控制台”。 在“Package Manager Console”窗口中,输入以下命令:
Enable-Migrations
此命令将名为 Migrations 的文件夹添加到项目中,并在 Migrations 文件夹中添加名为 Configuration.cs 的代码文件。
打开 Configuration.cs 文件。 添加以下 using 语句。
using BookService.Models;
然后将以下代码添加到 Configuration.Seed 方法:
protected override void Seed(BookService.Models.BookServiceContext context)
{
context.Authors.AddOrUpdate(x => x.Id,
new Author() { Id = 1, Name = "Jane Austen" },
new Author() { Id = 2, Name = "Charles Dickens" },
new Author() { Id = 3, Name = "Miguel de Cervantes" }
);
context.Books.AddOrUpdate(x => x.Id,
new Book() { Id = 1, Title = "Pride and Prejudice", Year = 1813, AuthorId = 1,
Price = 9.99M, Genre = "Comedy of manners" },
new Book() { Id = 2, Title = "Northanger Abbey", Year = 1817, AuthorId = 1,
Price = 12.95M, Genre = "Gothic parody" },
new Book() { Id = 3, Title = "David Copperfield", Year = 1850, AuthorId = 2,
Price = 15, Genre = "Bildungsroman" },
new Book() { Id = 4, Title = "Don Quixote", Year = 1617, AuthorId = 3,
Price = 8.95M, Genre = "Picaresque" }
);
}
在“包管理器控制台”窗口中,键入以下命令:
Add-Migration Initial
Update-Database
第一个命令生成创建数据库的代码,第二个命令执行该代码。 数据库是使用 LocalDB 在本地创建的。
探索 API (可选)
按 F5 以调试模式运行应用程序。 Visual Studio 启动IIS Express并运行 Web 应用。 然后,Visual Studio 启动浏览器并打开应用的主页。
当 Visual Studio 运行 Web 项目时,它会分配端口号。 在下图中,端口号为 50524。 运行应用程序时,会看到不同的端口号。
主页是使用 ASP.NET MVC 实现的。 页面顶部有一个显示“API”的链接。 此链接将介绍 Web API 自动生成的帮助页。 (若要了解如何生成此帮助页,以及如何将自己的文档添加到页面,请参阅为 ASP.NET Web API.) 可以单击帮助页链接以查看有关 API 的详细信息,包括请求和响应格式。
API 对数据库启用 CRUD 操作。 下面总结了 API。
| Authors | 说明 |
|---|---|
| GET api/authors | 获取所有作者。 |
| GET api/authors/{id} | 按 ID 获取作者。 |
| POST /api/authors | 创建新作者。 |
| PUT /api/authors/{id} | 更新现有作者。 |
| DELETE /api/authors/{id} | 删除作者。 |
| 书籍 | 说明 |
|---|---|
| GET /api/books | 获取所有书籍。 |
| GET /api/books/{id} | 按 ID 获取书籍。 |
| POST /api/books | 创建新书籍。 |
| PUT /api/books/{id} | 更新现有书籍。 |
| DELETE /api/books/{id} | 删除书籍。 |
查看数据库 (可选)
运行 Update-Database 命令时,EF 创建了数据库并调用 Seed 了 方法。 在本地运行应用程序时,EF 使用 LocalDB。 可以在 Visual Studio 中查看数据库。 在“视图”菜单中,选择“SQL Server 对象资源管理器”。
在“ 连接到服务器 ”对话框的“ 服务器名称 ”编辑框中,键入“ (localdb) \v11.0”。 将 “身份验证 ”选项保留为“Windows 身份验证”。 单击“连接” 。
Visual Studio 连接到 LocalDB 并在SQL Server 对象资源管理器窗口中显示现有数据库。 可以展开节点以查看 EF 创建的表。
若要查看数据,请右键单击表,然后选择“ 查看数据”。
以下屏幕截图显示了“书籍”表的结果。 请注意,EF 使用种子数据填充了数据库,该表包含 Authors 表的外键。