• 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.

Máy Chủ ảo Là Gì

May chủ ảo là gì? Vì sao cần biết về máy chủ ảo?

17/11/2019
Những Bài Học Hay Trong Cuộc Sống

Những bài học hay trong cuộc sống bạn nên đọc

19/11/2019
Phương Pháp Tính Giá Bán Lẻ Quần áo Mới Nhất 2020

Phương pháp tính giá bán lẻ quần áo mới nhất 2020

30/11/2019
Feliz En Vista Gia Tien Ich

Feliz En Vista giá gốc là bao nhiêu? Xem ngay để biết

16/12/2020
Số Nội Bộ Là Gì

số nội bộ là gì ? Tổng hợp những mô hình PBX ở Việt Nam mới nhất 2020

29/10/2019
Content Marketing

Các dạng Content Marketing

02/12/2020
Tổng Hợp Phương Pháp Thành Công Trong Kinh Doanh Mới Nhất 2020

Tổng hợp phương pháp thành công trong kinh doanh mới nhất 2020

30/11/2019
Sử Dụng Javascript Trong Html

Cách sử dụng javascript trong html cho người mới.

17/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.