【Web API系列教程】3.3 — 实战:处理数据(建立数据库)
前言
在本部分中,你将在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表的外键。
推荐阅读
-
【Web API系列教程】3.4 — 实战:处理数据(处理实体关系)
-
【Web API系列教程】3.8 — 实战:处理数据(显示条目细节)
-
【Web API系列教程】3.1 — 实战:处理数据(创建项目)
-
【Web API系列教程】3.3 — 实战:处理数据(建立数据库)
-
【Web API系列教程】3.10 — 实战:处理数据(发布App到Azure App Service)
-
【Web API系列教程】3.7 — 实战:处理数据(创建UI视图)
-
使用ASP.NET Web Api构建基于REST风格的服务实战系列教程——使用Repository模式构建数据库访问层
-
【Web API系列教程】3.5 — 实战:处理数据(创建数据传输对象)
-
【Web API系列教程】3.3 — 实战:处理数据(建立数据库)
-
【Web API系列教程】3.2 — 实战:处理数据(添加模型和控制器)