Ở đây chúng tôi sẽ tạo một dự án Web API mới và triển khai phương thức GET, POST, PUT và DELETE cho hoạt động CRUD bằng Entity Framework.
Đầu tiên, tạo một dự án API Web mới trong Visual Studio 2013 cho phiên bản Web express.
Mở Visual Studio 2013 cho Web và nhấp vào menu Tệp -> Dự án mới .. Điều này sẽ mở cửa sổ bật lên Dự án mới như hiển thị bên dưới.
Trong cửa sổ bật lên Dự án mới, chọn mẫu Web trong Visual C #. Nhập tên dự án WebApiDemo và vị trí bạn muốn tạo dự án. Nhấn OK để tiếp tục. Điều này sẽ mở một cửa sổ bật lên khác để chọn một mẫu dự án. Chọn dự án API Web như dưới đây.
Ở đây, chúng tôi sẽ không sử dụng bất kỳ xác thực nào trong dự án demo của chúng tôi trong thủ thuật lập trình ASP. Vì vậy, nhấp vào nút Thay đổi xác thực để mở cửa sổ bật lên Xác thực và chọn nút radio Không xác thực và sau đó nhấp vào OK như hiển thị bên dưới.
Bây giờ, bấm OK trong cửa sổ bật lên Dự án ASP.NET mới để tạo một dự án như dưới đây.
Như bạn có thể thấy, một dự án WebApiDemo mới được tạo với tất cả các tệp cần thiết. Nó cũng đã thêm ValuesControll mặc định. Vì, chúng tôi sẽ thêm bộ điều khiển API Web mới, chúng tôi có thể xóa ValuesControll mặc định.
Ở đây, chúng ta sẽ sử dụng phương pháp DB-First Entity Framework để truy cập cơ sở dữ liệu trường học hiện có. Vì vậy, hãy thêm mô hình dữ liệu EF cho cơ sở dữ liệu trường học bằng cách sử dụng phương pháp DB First.
Add Entity Framework Data Model
Để thêm mô hình dữ liệu EF bằng cách sử dụng phương pháp DB-First, nhấp chuột phải vào dự án của bạn -> nhấp vào Mục mới .. Điều này sẽ mở cửa sổ bật lên Thêm mục mới như hiển thị bên dưới.Chọn Dữ liệu trong ngăn bên trái và chọn Mô hình Dữ liệu Thực thể ADO.NET ở ngăn giữa và nhập tên của mô hình dữ liệu và nhấp vào Thêm. Điều này sẽ mở Trình hướng dẫn mô hình dữ liệu thực thể bằng cách sử dụng mà bạn có thể tạo Mô hình dữ liệu thực thể cho cơ sở dữ liệu trường học hiện có. Tải xuống dự án demo EF 6 với Cơ sở dữ liệu Schoold từ Github. Phạm vi của chủ đề được giới hạn trong API Web, vì vậy chúng tôi chưa đề cập đến cách tạo EDM. Tìm hiểu cách tạo Mô hình Dữ liệu Thực thể trong EF 6.
EntityFramework sẽ tạo mô hình dữ liệu sau khi hoàn thành tất cả các bước của Trình hướng dẫn mô hình dữ liệu thực thể.
Entity Framework cũng tạo ra các thực thể và các lớp ngữ cảnh như dưới đây.
Bây giờ, chúng tôi đã sẵn sàng triển khai hoạt động CRUD bằng Entity Framework trong dự án API Web của chúng tôi. Bây giờ, hãy thêm một bộ điều khiển API Web trong dự án của chúng tôi.
Thêm Controller API Web
Để thêm bộ điều khiển API Web trong dự án MVC của bạn, nhấp chuột phải vào thư mục Bộ điều khiển hoặc thư mục khác nơi bạn muốn thêm bộ điều khiển API Web -> chọn Thêm -> chọn Trình điều khiển. Điều này sẽ mở cửa sổ bật lên Add Scaffold như dưới đây.
Trong cửa sổ bật lên Thêm Giàn giáo, chọn API Web ở khung bên trái và chọn Trình điều khiển API Web 2 - Làm trống trong khung giữa và nhấp vào Thêm. (Chúng tôi chọn Mẫu trống khi chúng tôi dự định tự thêm phương thức hành động và Khung thực thể.)
Điều này sẽ mở cửa sổ bật lên Add Controller nơi bạn cần nhập tên của bộ điều khiển của bạn. Nhập "StudentContoder" làm tên của bộ điều khiển và nhấp vào Thêm như hiển thị bên dưới.
Điều này sẽ thêm lớp StudentContoder trống có nguồn gốc từ ApiControll như dưới đây.
Web API Controller
using System;Chúng tôi sẽ thực hiện các phương thức hành động GET, POST, PUT và DELETE trong bộ điều khiển này trong các phần tiếp theo.
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace MyMVCApp.Controllers
{
public class StudentController : ApiController
{
}
}
Thêm mô hình
Chúng tôi sẽ truy cập cơ sở dữ liệu cơ bản bằng cách sử dụng Entity Framework (EF). Như bạn đã thấy ở trên, EF tạo các lớp thực thể của riêng mình. Lý tưởng nhất là chúng ta không nên trả về các đối tượng thực thể EF từ API Web. Bạn nên trả lại DTO (Đối tượng truyền dữ liệu) từ API Web. Khi chúng tôi đã tạo dự án API Web với MVC, chúng tôi cũng có thể sử dụng các lớp mô hình MVC sẽ được sử dụng trong cả MVC và Web API.
Tại đây, chúng tôi sẽ trả lại Sinh viên, Địa chỉ và Tiêu chuẩn từ API Web của chúng tôi. Vì vậy, hãy tạo StudentViewModel, addressViewModel và StandardViewModel trong thư mục Mô hình như bên dưới.
Dưới đây là các lớp mô hình.
Model Classes
public class StudentViewModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public AddressViewModel Address { get; set; }
public StandardViewModel Standard { get; set; }
}
public class StandardViewModel
{
public int StandardId { get; set; }
public string Name { get; set; }
public ICollection<StudentViewModel> Students { get; set; }
}
public class AddressViewModel
{
public int StudentId { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
}