使用 Code First 迁移 为数据库设定种子
在本部分中,将使用 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 表的外键。