前言

在本部分中,你将在ef上使用code first migration来用测试数据建立。

在tools目录下选择library package manager,然后选择package manager console。在包管理控制台窗口,输入以下命令:

enable-migrations

这条命令会添加一个名为migrations的文件夹到你的项目,并添加一个名为configuration.cs的代码文件到migrations文件夹。

如果在bookservice中出现多种上下文类型,请输入”enable-migrations –contexttypename bookservice.models.bookservicecontext”,具体请看下图。——译者注。

打开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" }
        );
}

在package manager console窗口,键入以下命令:

add-migration initial
update-database

第一条命令生成用于创建数据库的代码,第二条命令执行那些代码。数据库使用localdb并创建于本地。

探索api(可选)

按f5在debug模式下运行应用程序。visual studio启动iis express并运行你的web应用。visual studio会启动一个并打开app的主页。

当visual studio运行了这个web项目,它会给定一个端口号。在下图中,端口号是50524。当你运行应用程序的时候,你可能会看到不同的端口号。

主页使用asp.net mvc来实现。在页面顶部有一个写着“api”的链接。该链接会带你去一个自动生成的关于web api的帮助页面。(想了解这个帮助页面如何生成的,以及你怎样添加你自己的文档进该页面,查看creating help pages fz喎?/kf/ware/vc/” target=”_blank” class=”keylink”>vcibbu1autkvuifdlyibbuemjqdxhighyzwy9″https://www..net/web-api/overview/creating-web-apis/creating-api-help-pages”>https://www.asp.net/web-api/overview/creating-web-apis/creating-api-help-pages)。)你可以点击帮助页面的链接以查看api的详细信息,包括请求和相应的格式。

该api支持在数据库上执行crud操作。下表是关于api的总结。

authors 备注
get api/authors get all authors.
get api/authors/{id} get an author by id.
post /api/authors create a new author.
put /api/authors/{id} update an existing author.
delete /api/authors/{id} delete an author.
books 备注
get /api/books get all books.
get /api/books/{id} get a book by id.
post /api/books create a new book.
put /api/books/{id} update an existing book.
delete /api/books/{id} delete a book.

查看数据库(可选)

当你执行了update-database命令,ef会创建数据库并调用seed方法。当你在本地执行了应用程序后,ef会使用localdb。你可以在visual studio中查看数据库。在view目录下,选择sql server object explorer。

在connect to server对话框中,在server name编辑框,键入“(localdb)\v11.0”。保留authentication选项为”windows authentication”。点击connect。

visual studio会连接到localdb并在sql server object explorer窗口显示已经存在的数据库。你可以展开该节点查看ef创建的表。

为了看到数据,右击一个表并选择view data。

下面的截图显示了books表的结果。注意ef通过seed数据聚集了数据库,并且该表包含了指向authors表的外键。