欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

程序员文章站 2023-08-22 13:42:20
前言 在本部分中,你将在ef上使用code first migration来用测试数据建立。 在tools目录下选择library package manager,然后选择pa...

前言

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

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

enable-migrations

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

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

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

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

打开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并创建于本地。

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

探索api(可选)

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

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

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

主页使用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的详细信息,包括请求和相应的格式。

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

该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。

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

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

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

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

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

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

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

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

【Web API系列教程】3.3 — 实战:处理数据(建立数据库)