婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET Web API教程 創建Admin控制器實例分享

ASP.NET Web API教程 創建Admin控制器實例分享

熱門標簽:外呼系統用員工身份證 保山電話外呼管理系統怎么用 使用智能電話機器人違法嗎 朝陽市地圖標注 太原外呼電銷機器人費用 蘇州銷售外呼系統預算 電話機器人廣告話術 淘寶地圖標注如何做 東莞語音電銷機器人排名
In this section, we'll add a Web API controller that supports CRUD (create, read, update, and delete) operations on products. The controller will use Entity Framework to communicate with the database layer. Only administrators will be able to use this controller. Customers will access the products through another controller.
在本小節中,我們要添加一個對產品支持CRUD(創建、讀取、更新和刪除)操作的Web API控制器。該控制器將使用實體框架與數據庫層進行通信。只有管理員才能夠使用這個控制器。客戶端將通過另一個控制器訪問產品。
In Solution Explorer, right-click the Controllers folder. Select Add and then Controller.
在“解決方案資源管理器”中右擊Controllers文件夾,選擇“添加”,然后選“控制器”(見圖2-16)。
 
圖2-16. 添加控制器
In the Add Controller dialog, name the controller AdminController. Under Template, select "API controller with read/write actions, using Entity Framework". Under Model class, select "Product (ProductStore.Models)". Under Data Context, select "New Data Context>".
在“添加控制器”對話框中,將此控制器命名為AdminController。在“模板”下選擇“帶有讀/寫動作的API控制器(用實體框架)”。在“模型類”下選擇“Product (ProductStore.Models)”。在“數據上下文”下選擇“新數據上下文>”(見圖2-17)。
 
圖2-17. 添加控制器對話框中的設置
If the Model class drop-down does not show any model classes, make sure you compiled the project. Entity Framework uses reflection, so it needs the compiled assembly.
如果“模型類”下拉列表未顯示任何模型類,請確保已編譯了此項目。實體框架使用反射,因此它需要已編譯的程序集。
Selecting "New Data Context>" will open the New Data Context dialog. Name the data context ProductStore.Models.OrdersContext.
選擇“新數據上下文>”會打開“新數據上下文”對話框。將該數據上下文命名為ProductStore.Models.OrdersContext(見圖2-18)。
 
圖2-18. 命名“新數據上下文”
Click OK to dismiss the New Data Context dialog. In the Add Controller dialog, click Add.
點擊“OK”退出這個“新數據上下文”對話框。在“添加控制器”對話框中點擊“添加”。
Here's what got added to the project:
以下是添加到項目的內容:
A class named OrdersContext that derives from DbContext. This class provides the glue between the POCO models and the database.
一個名稱為的OrdersContext類,它派生于DbContext。這個類提供了POCO模型與數據庫之間的粘合。
A Web API controller named AdminController. This controller supports CRUD operations on Product instances. It uses the OrdersContext class to communicate with Entity Framework.
一個名稱為AdminController的Web API控制器。這個控制器支持對Product實例的CRUD操作。它使用OrdersContext類與實體框架進行通信。
A new database connection string in the Web.config file.
Web.config文件中的一個新的數據庫連接字符串。
上述新添加項見圖2-19。
 
圖2-19. 新添加到項目的內容
Open the OrdersContext.cs file. Notice that the constructor specifies the name of the database connection string. This name refers to the connection string that was added to Web.config.
打開OrdersContext.cs文件。注意,其構造器指明了數據庫連接字符串的名稱。該名稱是指被添加到Web.config的連接字符串。
復制代碼 代碼如下:

public OrdersContext() : base("name=OrdersContext")Add the following properties to the OrdersContext class:

將以下屬性添加到OrdersContext類:
復制代碼 代碼如下:

public DbSetOrder> Orders { get; set; }
public DbSetOrderDetail> OrderDetails { get; set; }

A DbSet represents a set of entities that can be queried. Here is the complete listing for the OrdersContext class:
DbSet表示一組能夠被查詢的實體。以下是這個OrdersContext類的完整清單:
復制代碼 代碼如下:

public class OrdersContext : DbContext
{
public OrdersContext() : base("name=OrdersContext")
{
}
public DbSetOrder> Orders { get; set; }
public DbSetOrderDetail> OrderDetails { get; set; }
public DbSetProduct> Products { get; set; }
}

The AdminController class defines five methods that implement basic CRUD functionality. Each method corresponds to a URI that the client can invoke:
類定義了實現基本的CRUD功能的五個方法。每個方法對應于一個客戶端可以請求的URI(見表2-2):
表2-2. AdminController中實現CRUD操作的五個方法
table
Each method calls into OrdersContext to query the database. The methods that modify the collection (PUT, POST, and DELETE) call db.SaveChanges to persist the changes to the database. Controllers are created per HTTP request and then disposed, so it is necessary to persist changes before a method returns.
每一個方法調用都會進入OrdersContext對數據庫進行查詢。對數據集進行修改的方法(PUT、POST以及DELETE)會調用db.SaveChanges,以便把這些修改持久化回數據庫。每個HTTP請求都會創建控制器(實例),然后清除它。因此,在一個方法返回之前,對修改持久化是必要的。
Add a Database Initializer
添加數據庫初始化器
Entity Framework has a nice feature that lets you populate the database on startup, and automatically recreate the database whenever the models change. This feature is useful during development, because you always have some test data, even if you change the models.
實體框架有一個很好的特性,它讓你在(應用程序)啟動時填充數據庫,并在模型發生修改時重建數據庫。這個特性在開發期間是有用的,因為你總會有一些測試數據,甚至會修改模型。
In Solution Explorer, right-click the Models folder and create a new class named OrdersContextInitializer. Paste in the following implementation:
在“解決方案資源管理器”中,右擊Models文件夾,并創建一個名稱為OrdersContextInitializer的新類。粘貼以下實現:
復制代碼 代碼如下:

namespace ProductStore.Models
{
using System;
using System.Collections.Generic;
using System.Data.Entity;
public class OrdersContextInitializer : DropCreateDatabaseIfModelChangesOrdersContext>
{
protected override void Seed(OrdersContext context)
{
var products = new ListProduct>()
{
new Product() { Name = "Tomato Soup", Price = 1.39M, ActualCost = .99M },
new Product() { Name = "Hammer", Price = 16.99M, ActualCost = 10 },
new Product() { Name = "Yo yo", Price = 6.99M, ActualCost = 2.05M }
};
products.ForEach(p => context.Products.Add(p));
context.SaveChanges();
var order = new Order() { Customer = "Bob" };
var od = new ListOrderDetail>()
{
new OrderDetail() { Product = products[0], Quantity = 2, Order = order},
new OrderDetail() { Product = products[1], Quantity = 4, Order = order }
};
context.Orders.Add(order);
od.ForEach(o => context.OrderDetails.Add(o));
context.SaveChanges();
}
}
}

By inheriting from the DropCreateDatabaseIfModelChanges class, we are telling Entity Framework to drop the database whenever we modify the model classes. When Entity Framework creates (or recreates) the database, it calls the Seed method to populate the tables. We use the Seed method to add some example products plus an example order.
通過對DropCreateDatabaseIfModelChanges類的繼承,我們是在告訴實體框架,無論何時修改了模型類,便刪除數據庫。當實體框架創建(或重建)數據庫時,它會調用Seed方法去填充數據庫。我們用這個Seed方法添加了一些例子產品和一個例子訂單。
This feature is great for testing, but don't use the DropCreateDatabaseIfModelChanges class in production, because you could lose your data if someone changes a model class.
這個特性對于測試是很棒的,但在產品(指正式運行的應用程序 — 譯者注)中不要使用這個DropCreateDatabaseIfModelChanges類。因為,如果有人修改了模型類,便會丟失數據。
Next, open Global.asax and add the following code to the Application_Start method:
下一步,打開Global.asax,并將以下代碼添加到Application_Start方法中:
復制代碼 代碼如下:

System.Data.Entity.Database.SetInitializer(
new ProductStore.Models.OrdersContextInitializer());Send a Request to the Controller

向控制器發送請求
At this point, we haven't written any client code, but you can invoke the web API using a web browser or an HTTP debugging tool such as Fiddler. In Visual Studio, press F5 to start debugging. Your web browser will open to http://localhost:portnum/, where portnum is some port number.
此刻,我們還沒有編寫任何客戶端代碼,但你已經可以使用Web瀏覽器或諸如Fiddler之類的調試工具來調用這個Web API了。在Visual Studio中按F5鍵啟動調試。你的瀏覽器將打開網址http://localhost:portnum/,這里,portnum是某個端口號。
Send an HTTP request to "http://localhost:portnum/api/admin". The first request may be slow to complete, because Entify Entity Framework needs to create and seed the database. The response should something similar to the following:
發送一個HTTP請求到“http://localhost:portnum/api/admin”。第一次請求可能會慢一些才能完成,因為實體框架需要創建和種植數據庫。其響應應當類似于下面這樣:
復制代碼 代碼如下:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Mon, 18 Jun 2012 04:30:33 GMT
X-AspNet-Version: 4.0.30319
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Type: application/json; charset=utf-8
Content-Length: 175
Connection: Close
[{"Id":1,"Name":"Tomato Soup","Price":1.39,"ActualCost":0.99},{"Id":2,"Name":"Hammer",
"Price":16.99,"ActualCost":10.00},{"Id":3,"Name":"Yo yo","Price":6.99,"ActualCost":
2.05}]

看完此文如果覺得有所收獲,懇請給個推薦
您可能感興趣的文章:
  • 創建一個完整的ASP.NET Web API項目
  • ASP.NET中Web API的簡單實例
  • ASP.NET MVC Web API HttpClient簡介
  • ASP.NET Web Api 2實現多文件打包并下載文件的實例
  • 支持Ajax跨域訪問ASP.NET Web Api 2(Cors)的示例教程
  • ASP.NET Web API教程 創建Admin視圖詳細介紹
  • ASP.NET Web API如何將注釋自動生成幫助文檔
  • ASP.NET Web API教程 創建域模型的方法詳細介紹
  • .Net Web Api中利用FluentValidate進行參數驗證的方法

標簽:阿里 潛江 克拉瑪依 運城 西藏 綏化 呼倫貝爾 洛陽

巨人網絡通訊聲明:本文標題《ASP.NET Web API教程 創建Admin控制器實例分享》,本文關鍵詞  ASP.NET,Web,API,教程,創建,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET Web API教程 創建Admin控制器實例分享》相關的同類信息!
  • 本頁收集關于ASP.NET Web API教程 創建Admin控制器實例分享的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕在线播放不卡一区| 在线播放国产精品二区一二区四区| 亚洲欧美在线视频| 欧美日韩一区二区三区四区五区| 久久精品国内一区二区三区| 成人免费在线播放视频| 日韩美女在线视频| 色婷婷激情综合| 国产99久久久久久免费看农村| 亚洲成人第一页| 国产精品无码永久免费888| 88在线观看91蜜桃国自产| 91免费观看视频| 国产成人自拍高清视频在线免费播放| 亚洲一区二区在线播放相泽| 国产欧美1区2区3区| 制服丝袜亚洲色图| 色狠狠综合天天综合综合| 国产69精品久久777的优势| 日韩电影免费在线观看网站| 亚洲激情一二三区| 亚洲欧美自拍偷拍色图| 欧美国产日韩精品免费观看| 日韩亚洲欧美在线| 欧美日韩国产欧美日美国产精品| 不卡视频在线观看| 国产风韵犹存在线视精品| 美女爽到高潮91| 天天色天天操综合| 一区二区日韩av| 亚洲欧美经典视频| 国产精品九色蝌蚪自拍| 国产欧美日韩亚州综合 | 欧美视频一二三区| 91麻豆国产福利精品| 成人美女视频在线观看18| 国产一区二区三区四区五区入口 | 一区二区在线观看av| 国产精品久久久久久久久久免费看| 精品国产免费久久| 欧美sm美女调教| 欧美一区二区三区婷婷月色| 777奇米四色成人影色区| 欧美伦理视频网站| 3d动漫精品啪啪1区2区免费 | 国产精品18久久久久久久久| 国产一区二区三区免费看 | 91免费看片在线观看| 99re8在线精品视频免费播放| 成人aa视频在线观看| av在线不卡网| 91麻豆.com| 色av成人天堂桃色av| 色老汉一区二区三区| 欧美日韩成人一区| 91精品国产色综合久久不卡蜜臀 | 精品国产亚洲在线| 26uuu色噜噜精品一区| 久久亚洲免费视频| 国产精品久久午夜夜伦鲁鲁| 亚洲色欲色欲www| 亚洲综合视频在线| 日韩国产高清在线| 国产原创一区二区三区| 成人免费va视频| 91极品美女在线| 91精品国产色综合久久不卡电影| 欧美www视频| 国产精品日韩成人| 亚洲成a人片在线不卡一二三区| 蜜桃精品在线观看| 成人ar影院免费观看视频| 欧美群妇大交群中文字幕| 精品88久久久久88久久久| 中文字幕欧美国产| 亚洲mv大片欧洲mv大片精品| 精品中文字幕一区二区小辣椒| 成人av免费在线观看| 欧美日本一区二区三区| 中文字幕成人网| 视频一区视频二区中文字幕| 国产在线精品一区二区不卡了| 99久久国产综合精品女不卡| 制服丝袜av成人在线看| 国产精品久久久久三级| 日韩电影在线看| 91网页版在线| 精品国产乱码久久久久久免费| 亚洲视频你懂的| 激情丁香综合五月| 欧美亚洲国产一区二区三区va| 337p粉嫩大胆色噜噜噜噜亚洲| 一区二区三区在线视频观看| 国产一区二区成人久久免费影院| 欧洲av在线精品| 久久久久久电影| 日韩中文字幕av电影| 91在线你懂得| 久久先锋影音av| 日韩在线观看一区二区| 一本久久a久久精品亚洲| 国产喂奶挤奶一区二区三区| 日韩中文字幕1| 在线观看一区二区视频| 国产精品素人视频| 蜜臂av日日欢夜夜爽一区| 91福利国产成人精品照片| 国产午夜亚洲精品不卡| 美女脱光内衣内裤视频久久影院| 日本高清成人免费播放| 国产欧美中文在线| 国产综合久久久久影院| 在线电影一区二区三区| 亚洲成av人片在线观看无码| 99精品视频一区| 国产精品久久久久久久久动漫| 精品一区二区三区免费毛片爱| 欧美酷刑日本凌虐凌虐| 亚洲一区日韩精品中文字幕| 99免费精品在线| 一区在线中文字幕| 国产成人aaaa| 久久精品一区二区三区四区| 久久99久久99小草精品免视看| 欧美日韩不卡在线| 图片区小说区国产精品视频| 欧美三级电影在线观看| 亚洲国产一二三| 欧美系列在线观看| 亚洲国产成人精品视频| 欧美日韩亚洲不卡| 亚洲国产成人porn| 欧美群妇大交群中文字幕| 舔着乳尖日韩一区| 欧美日韩夫妻久久| 亚洲第一福利视频在线| 欧美日韩久久久| 日韩影院免费视频| 日韩精品一区二区三区在线观看| 日本在线不卡视频| 精品国产电影一区二区| 成人丝袜18视频在线观看| 亚洲欧美怡红院| 在线观看视频一区二区欧美日韩| 亚洲一二三四区不卡| 91精品欧美综合在线观看最新 | 色偷偷88欧美精品久久久| 亚洲三级久久久| 欧美色区777第一页| 日本欧美一区二区三区乱码| 欧美一区二区三区在| 国产一区美女在线| 1000精品久久久久久久久| 一本在线高清不卡dvd| 亚洲与欧洲av电影| 日韩亚洲欧美高清| 东方aⅴ免费观看久久av| 亚洲免费视频中文字幕| 欧美日韩高清在线播放| 韩国一区二区视频| 欧美国产乱子伦 | 99re热这里只有精品免费视频 | 成人av在线播放网站| 亚洲伦在线观看| 欧美一级在线观看| 国产v综合v亚洲欧| 一个色妞综合视频在线观看| 日韩一级视频免费观看在线| 国产精品小仙女| 一区二区高清视频在线观看| 欧美xxxxxxxx| 色噜噜狠狠色综合中国| 久久精品国产99国产精品| 国产精品久线在线观看| 欧美日韩一区成人| 国产成人aaa| 日韩精品电影在线观看| 国产欧美综合色| 欧美精品第1页| 成人污污视频在线观看| 亚洲国产精品久久一线不卡| 久久精品在这里| 91麻豆精品国产自产在线| 9l国产精品久久久久麻豆| 毛片av中文字幕一区二区| 亚洲三级小视频| 欧美精品一区二区三区蜜臀| 欧美日韩午夜精品| 成人高清视频免费观看| 日本中文字幕一区二区有限公司| 国产精品免费aⅴ片在线观看| 欧美日韩综合在线免费观看| 国产福利91精品一区| 免费一级片91| 一区二区三区国产精华| 久久久久久电影| 欧美本精品男人aⅴ天堂| 欧美日韩你懂的| 9色porny自拍视频一区二区| 国产精品66部|