• Trang chủ
  • Xây dựng website
  • Bảo mật Website
  • Kiến thức SEO
  • Source Web
  • Tài liệu làm web
  • Trang chủ
  • Xây dựng website
  • Bảo mật Website
  • Kiến thức SEO
  • Source Web
  • Tài liệu làm web

Hướng dẫn xây dựng web api entity framework mới nhất 2020

ATPMedia Bởi ATPMedia
21/11/2019
Trang chủ Kiến thức xây dựng website
Rate this post

Xây dựng web api entity framework là một trong những keyword được search nhiều nhất trên Google về chủ đề xây dựng web api entity framework. Trong bài viết này, chúng tôi sẽ viết bài viết Hướng dẫn xây dựng web api entity framework mới nhất 2020.

Xây Dựng Web Api Entity Framework

Hướng dẫn xây dựng web api entity framework mới nhất 2020

1. Website Api là gì

Asp.net web Api là một framework giúp cho việc xây dựng HTTP service một phương pháp dễ dàng. Chúng đủ sức tăng trưởng cho nhiều clients không giống nhau như trình duyệt, mobile app. web api là một hệ thống để phát triển các áp dụng dựa trên Restfull service trong .Net. Các bạn đủ nội lực ảnh dung vị trí của Asp.net Api trong .Net giống như ảnh bên dưới:

h68-0.png

2. Áp dụng dùng thử

Công nghệ sử dụng:

  • Visual studio 2013
  • .Net 4.6
  • web Api 2.0
  • Entity framework 6.0
  • Knockout js

2.1. Tạo project

  • mở Visual studio
  • lựa chọn New project
  • Tại cửa sổ dialog lựa chọn Asp.net website applicaltion
  • Tiếp đến lựa chọn web API như ảnh bên dưới

CreateProject.jpg

2.2. Tạo data models

Trong ứng dựng demo này tôi sẽ tạo 2 model category và product. Để tạo một model mới, chúng ta click chuột phải tại thư mục Models chọn “New” sau đó lựa chọn “class” như cách tạo các class thông thường.

CreateProducModels.jpg

– Category class :

using System.ComponentModel.DataAnnotations;namespace WebAPIDemo.Models
publicclassCategorypublicint Id  get; set; 

        [Required]publicstring Name  lấy; set; 
    

– Product class:

using System.ComponentModel.DataAnnotations;namespace WebAPIDemo.Models
publicclassProductpublicint Id  get; set; 

        [Required]publicstring Name  lấy; set; publicdecimal Price  get; set; publicint CategoryId  quét; set; publicvirtualCategory Category  get; set; 
    

note với Entity Framework 6.0, nó đang hỗ trợ cơ chế lazy loading. Trong dùng thử này phân khúc Product có khóa ngoại là CategoryId, cùng lúc nó đủ sức truy cập tới Category thông qua tính chất Category. Để có lazy loading chúng ta cần thêm từ khóa vitual cho thuộc tính này. Chúng ta đủ sức hiểu lazy loading trong trường hợp này giống như sau:

db.products.ToList() // thị trường Category sẽ không được load cùng danh mục productsdb.products[0].Category // chỉ khi truy suất vào một product cụ thể Category mới được load

2.3. Tạo controller

  • nhấn chuột phải tại thư mục Controller => chọn “Add” => lựa chọn “Controller”
  • Tại cửa sổ “Add Scaffold” chúng ta chọn “Web API 2 Controller with actions, using Entity Framework”.

ef06.png

Tại cửa sổ “Add controller”

  • Tại Model class dropdownlist, chọn Category class.
  • Tích lựa chọn “Use async controller actions”.
  • Trong mục “Controller Name” tên controller auto được điền vào.

CreateController.jpg

Tiếp đến click (+) button ở mục “Data context Class”, tại cửa sổ “New Data Context” gõ tên Data context class theo mong muốn. Ở đây tôi tạo class có tên : WebAPIDemoContext. ProductsController được tạo tương tự như các bước trên.

2.4. sử dụng việc với Entity framework

Trong demo này tôi sử dụng Code First Migrations để init data và thao tác với Sql server. đầu tiên cần enable migration, để làm điều này chúng ta thực hiện như sau: chọn tool => chọn Nuget Package Manager => chọn Package Manage Console. Trong cửa sổ Package Manage Console gõ lệnh:

Enable-Migrations

Một thư mục Migrations được xây dựng cùng một file có tên là “Configuration”. tiếp theo chúng ta sẽ cải tiến method “Seed trong class này để init data. Đây là method xây dựng sẵn trong class DbContext của Entity Framework và chúng ta hoàn toàn đủ sức ghi đè theo trường hợp sử dụng

protectedoverridevoidSeed(WebAPIDemoContext context)
        
            context.Categories.AddOrUpdate(x => x.Id,newCategory  Id =1, Name ="Mobile" ,newCategory  Id =2, Name ="Tablet" ,newCategory  Id =3, Name ="Smart watch" 
               );

            context.Products.AddOrUpdate(x => x.Id,newProduct
                    Id =1,
                    Name ="Product 1",
                    CategoryId =1,
                    Price =9.99M,
                ,newProduct
                    Id =2,
                    Name ="Product 2",
                    CategoryId =1,
                    Price =12.95M,
                ,newProduct
                    Id =3,
                    Name ="Product 3",
                    CategoryId =2,
                    Price =15,
                ,newProduct
                    Id =4,
                    Name ="Product 4",
                    CategoryId =3,
                    Price =10,
                

                );
        

Ok, chúng ta đang có một số data check cho demo. ngày nay chúng ta cần một class để tạo table và insert những bản ghi trên vào sql server, để sử dụng điều đó ta gõ lệnh:

Add-Migration Initial
Update-Database

Một file migarion được tạo ra với code được tự động generate

namespace WebAPIDemo.Migrations
using System;using System.Data.Entity.Migrations;publicpartialclassInitial : DbMigrationpublicoverridevoidUp()
        CreateTable("dbo.Categories",
                c =>new
                        Id = c.Int(nullable: false, identity: true),
                        Name = c.String(nullable: false),
                    )
                .PrimaryKey(t => t.Id);CreateTable("dbo.Products",
                c =>new
                        Id = c.Int(nullable: false, identity: true),
                        Name = c.String(nullable: false),
                        Price = c.Decimal(nullable: false, precision: 18, scale: 2),
                        CategoryId = c.Int(nullable: false),
                    )
                .PrimaryKey(t => t.Id)
                .ForeignKey("dbo.Categories", t => t.CategoryId, cascadeDelete: true)
                .Index(t => t.CategoryId);

        publicoverridevoiddownload()
        DropForeignKey("dbo.Products", "CategoryId", "dbo.Categories");DropIndex("dbo.Products", new[]  "CategoryId" );DropTable("dbo.Products");DropTable("dbo.Categories");
        
    

Với đoạn code ở trên, Code First sẽ tự động liên kết, tạo database, table và insert data tới sql server trong lần khởi chạy đầu tiền tài ứng dụng, những lần sau đó nếu có thay đổi migration DB sẽ được update ngược lại chúng sẽ không tạo lại nữa. hiện giờ chúng ta nhấn F5 để chạy web, sau đó kiểm tra database trong Server Exploer của Visual studio. Nếu có đa số table và dữ liệu giống như ảnh bên dưới thì việc khởi tạo DB đã thành đạt.

Xem thêm: Thiết kế Website chuyên nghiệp

sqlServerConnection.jpg

productTableData.jpg

2.5. thiết lập client với với knockout js

Trong ứng dụng này, tôi sử dụng Knockout js để xây dựng phía client. Knockout js là một thư viện javascript sử dụng mô ảnh Model-View-ViewModel (MVVM). Các bạn đủ sức nghiên cứu thêm tại web Knockout. có thể hình dung mô hình hoạt động của áp dụng như sau:

ef31.png

Chúng ta sẽ thiết lập 3 chức năng cơ bản cho vận dụng dùng thử :

  • Show mục lục món hàng
  • Show chi tiết hàng hóa
  • Thêm mới sản

Trước tiên, chúng ta add knockout js tới vận dụng. Trong Package manager console gõ lệnh:

Install-Package knockoutjs

Tạo lượt xem model:

Ở đây tôi sẽ tạo một file với tên là app.js trong thư mực Scripts của dự án để viết các hàm thao tác dự liệu với Server thông qua Knockout JS

varViewModel=function () var self =this;
    self.products = không.observableArray();
    self.error = ko.observable();var productsUri ='/api/products/';functionajaxHelper(uri, method, data) 
        self.error(''); // Clear error messagereturn $.ajax(
            type: method,
            url: uri,
            dataType: 'json',
            contentType: 'application/json',
            data: data ? JSON.stringify(data) : null).thất bại(function (jqXHR, textStatus, errorThrown) 
            self.error(errorThrown);
        );
    functiongetAllProducts() ajaxHelper(productsUri, 'GET').done(function (data) 
            self.products(data);
        );
    // Fetch the initial data.getAllProducts();

    self.detail = ko.observable();

    self.getProductDetail=function (item) ajaxHelper(productsUri + item.Id, 'GET').done(function (data) 
            self.detail(data);
        );
    

    self.categories = không.observableArray();
    self.newProduct= 
        Category: không.observable(),
        Name: không.observable(),
        Price: ko.observable(),
    var categoriesUri ='/api/categories/';functiongetCategories() ajaxHelper(categoriesUri, 'GET').done(function (data) 
            self.categories(data);
        );
    

    self.addProduct=function (formElement) var product = 
            CategoryId: self.newProduct.Category().Id,
            Name: self.newProduct.Name(),
            Price: self.newProduct.Price(),
        ;ajaxHelper(productsUri, 'POST', product).done(function (item) 
            self.products.push(item);
        );
    getCategories();
;

ko.applyBindings(newViewModel());

Binding trên view:


class="panel panel-default">

class="panel-heading">

class="panel-title">Products

class="panel-body">

  • class="list-unstyled"data-bind="foreach: products">
    • data-bind="text: CategoryName">: data-bind="text: Name">href="#"data-bind="click: $parent.getProductDetail">Details

ứng dụng demo sẽ như ảnh bên dưới:

finalResult.jpg

Trên đây tôi đã tạo một áp dụng đơn giản sử dụng Asp.Net WebAPI 2.0, EF 6.0. Hy vọng rằng dùng thử này sẽ khiến các bạn chưa biết đủ sức bắt đầu làm việc với Asp.net WebApi. Nó là thân thuộc nếu các bạn đã từng làm việc với Asp.Net Mvc, song song nó cũng không quá khó khăn cho những ai mới làm quen. Chúc các bạn thành công.

Tags: asp.net web apihướng dẫn lập trình web api (mvc5)lập trình web asp net apiweb api asp.net mvcweb api example c#xây dựng restful api với c#xây dựng ứng dụng web với asp net corexây dựng web api entity frameworkxây dựng web service dùng api restful service
ATPMedia

ATPMedia

Bài Viết Tiếp Theo
Viết Bài Seo Là Gì

Viết bài seo là gì? Tại sao chúng ta cần hiểu cách viết bài seo?

Bài Viết Mới.

Cách massage phòng ngừa và hỗ trợ điều trị thoát vị đĩa đệm

21/03/2022
Cách Tạo Khung Avatar Facebook

hướng dẫn các cách tạo khung avatar facebook mới nhất 2020

23/12/2019
Tổng Hợp Các Mục Tiêu Cuộc Sống để Giúp Bạn Thành Công Mới Nhất 2020

Tổng hợp các mục tiêu cuộc sống để giúp bạn thành công mới nhất 2020

30/11/2019
Công Ty Nuôi Trồng Thủy Sản

những công ty nuôi trồng thủy sản tốt nhất,uy tín nhất hiện nay.

30/11/2019
Công Cụ Marketing Online

Tổng Quan Những Công Cụ Marketing Online Hiệu Quả Mà Bạn Nên Biết

31/05/2020
Sử Dụng Wordpress

Hướng dẫn sử dụng wordpress đơn giản mới nhất 2020

31/12/2019
Mô Hình B2b Là Gì

mô hình b2b là gì ? hướng dẫn sử dụng mô hình b2b mới nhất 2020

06/11/2019
Chứng Chỉ Ssl Là Gì

Chứng chỉ ssl là gì? Tại sao chúng ta phải cần đến Chứng chỉ ssl?

22/11/2019

XÂY DỰNG WEBSITE

Coder.com.vn là Blog chia sẻ kiến thức học lập trình miễn phí. Chuyên tổng hợp các bài viết về tài liệu học lập trình, với mong muốn tất cả mọi người ở khắp nơi trên thế giới được học lập trình miễn phí.

Chuyên mục

  • Trang Chủ
  • Source Web
  • Kiến Thức Seo
  • Bảo Mật Website
  • Tài Liệu Làm Web
  • Xây Dựng Website

Phần mềm - Công cụ

  • Brands
  • Alosoft
  • Seeding
  • Top Việc
  • Tổng Hợp
  • Quản Trị Nhân Sự

Liên kết

  • Topvui
  • Xe Mô Tô
  • Quản Lý Kho
  • Blog Việc Làm
  • Giải Pháp Việc Làm
  • Phần Mềm Miễn Phí

© 2019 | Thiết Kế bởi ATP MEDIA

  • Trang chủ
  • Xây dựng website
  • Bảo mật Website
  • Kiến thức SEO
  • Source Web
  • Tài liệu làm web

Xây dựng website đơn giản, tối ưu chi phí, chuẩn SEO và đồng thời cũng cung cấp các kiến thức hữu ích để bất kỳ ai cũng có thể thiết kế website đơn giản.