Code First Là Gì

     

I. Quan niệm Code First vào ASP .NET MVC

Trong asp. Net mvc ta có 2 phương pháp tiếp cận bao gồm đó là database first và code first, với 1 bài toán yêu cầu nhiệm vụ biến hóa hóa liên tiếp và tăng trưởng nhanh gọn thì code first sẽ là quy mô tiếp cập cân xứng hơn cả, dưới đây mình sẽ biểu diễn những đặc thù chính đối sánh đến phương pháp tiếp cận code first

*
khóa chính. Không chỉ có vậy nó sẽ thiết lập 1 cột khóa auto-increment để tàng trữ giá trị nếu dạng hình khóa là số nguyên.Quy ước về mối quan hệ: Entity Framework hỗ trợ các quy ước khác biệt để nhận ra 1 quan hệ giữa 2 model dựa vào tên của ở trong tính và kiểu dữ liệuĐể search hiểu chi tiết hơn bản thân sẽ làm 1 ví dụ bên dưới.Với giải pháp tiếp cận code-first, Entity Framework sẽ khởi tạo những đối tượng người chi tiêu và sử dụng bảng cửa hàng tài liệu dựa trên model mà các bạn tạo để diễn tả tài liệu ứng dụng. Một vài quy ước của code first được mang lại phép tự động hóa thông số kỹ thuật kỹ thuật 1 mã sản phẩm như sau : Quy cầu tên bảng : Khi tạo nên 1 class mô tả những thực thể là User sẽ được tàng trữ vào database thì Entity Framework sẽ auto hóa tạo thành 1 bảng có tên là UsersQuy ước khóa bao gồm : khi bạn tạo 1 nằm trong tính mang tên là UserId vào lớp User của mã sản phẩm thì thuộc tính này được nhận làm. Không chỉ có thế nó sẽ tùy chỉnh 1 cột khóa auto-increment để tàng trữ giá trị nếu đẳng cấp khóa là số nguyên. Quy ước về quan hệ : Entity Framework đáp ứng những quy ước khác nhau để nhận ra 1 quan hệ giữa 2 Mã Sản Phẩm phụ thuộc vào tên của thuộc tính cùng kiểu dữ liệuĐể mày mò và thăm khám phá cụ thể hơn mình sẽ làm cho 1 ví dụ bên dưới .Bạn vẫn xem : Code first là gì

II. Tạo nên 1 vận dụng ASP .NET MVC với cách tiếp cận code first

Bước 1. Tạo ra project

Trong bài viết này mình thực hiện Visual studio 2019 với SQL sever 2014Tiến hành mở và chế tạo ra 1 proejct ASP .NET MVC như sau :




Bạn đang xem: Code first là gì

Bạn đang đọc: Code First Là Gì – Entity Framework Code First Toàn Tập




Xem thêm: Giao Thức Sip Là Gì ? Tìm Hiểu Về Sip Server, Sip Account, Sip Phone

*

Bước 2. Tạo Model

Tiếp theo chọn MVC để có những nhân tố thiết yếuVì là code first buộc phải tất yếu đuối mình sẽ khởi tạo những model bằng code đi đầu rồi

*
*
Tạo 3 Class mang tên Student, Course, Enrollment, hãy nhờ rằng không nên được sắp xếp tên gồm ký từ ” s ” ( Số những ) vì tiến trình generate sống database sẽ tạo ra bảng có thêm một ký từ ” s ” nữa đằng sauCấu hình Class Student như sau :using System ; using System. Collections. Generic ; using System. Linq ; using System. Website ; namespace MyCodeFirst. Models public class Student public int Id get ; phối ; public string LastName get ; mix ; public string FirstName get ; set ; public DateTime EnrollmentDate get ; phối ; public virtual ICollectionEnrollments get ; phối ; Mình đã lý giải cụ thể 1 số ít điều ở class nàyBảng Student sẽ liên kết với bảng Enrollment, để quan niệm ta cần sử dụng từ khóa virtual với 1 kiểu tài liệu là Iconnection (tham số là 1 trong những Enrollment entity ta sẽ định nghĩa sau)=> ta vẫn định nghĩa được 1 bảng Student được mapping sang một bảng Enrollment với bảng này sẽ sở hữu được khóa nước ngoài là StudentIDBảng Student sẽ liên kết với bảng Enrollment, để quan niệm ta dùng từ khóa virtual và 1 hình dáng tài liệu là Iconnection ( tham số là một trong Enrollment entity ta sẽ có mang sau ) => ta sẽ định nghĩa được 1 bảng Student được mapping sang một bảng Enrollment với bảng này sẽ sở hữu khóa ngoại là StudentIDTương trường đoản cú ta đã code 2 class Enrollment với Course như sauEnrollment. Cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace MyCodeFirst.Models public class Enrollment public int EnrollmentID get; set; public int Grade get; set; public int CourseID get; set; public int StudentID get; set; public virtual Student Student get; set; public Course Course get; set; Course.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.ComponentModel.DataAnnotations.Schema;namespace MyCodeFirst.Models public class Course //Sử dụng anotation để tự sinh các mã tự động trong database public int CourseID get; set; public string Title get; set; public int Credits get; set; public virtual ICollectionEnrollments get; set;

Bước 3. Connect database

Mở Sql máy chủ và thực hiện tạo 1 database có tên MyCodeFirst

*

Chọn property của sever để lấy sever name

*
Vào Project => Manager nuget package => chọn tab browse cùng tìm entity framework như hình
*
Vào sever Explorer => lựa chọn Connect lớn database => Nhập tên sever và lựa chọn database vừa tạo
*
Tiếp theo ta nhấn vào phải vào data connection vừa links => Property => xào nấu connection string
*

Mở tệp tin webconfig.cs thêm đoạn tương tự (connection string của bạn sẽ khác) sau vào vào thẻ configuration




Xem thêm: Hình Nào Sau Đây Không Thuộc Khối Tròn Xoay ? Hình Nào Sau Đây Thuộc Khối Tròn Xoay : A

*

B4. Tạo ra Data accept layer chứa các context

Vào project tạo thêm một thư mục có tên DAL => tạo thành 1 class mang tên MyCodeFirstContext.cs và cấu dường như sauVào project tạo thêm 1 thư mục có tên DAL => tạo thành 1 class có tên MyCodeFirstContext. Cs và thông số kỹ thuật kỹ thuật như sauusing MyCodeFirst. Models ; using System ; using System. Collections. Generic ; using System. Data. Entity ; using System. Linq ; using System. Web ; namespace MyCodeFirst. DAL public class MyCodeFirstContext : DbContext public MyCodeFirstContext ( ) : base ( ” MyCodeFirstContext ” ) public DbSet Students get ; mix ; public DbSet Enrollments get ; set ; public DbSet Courses get ; mix ; kết thúc xuôi hãy tiến hành rebuild project, đấy là bắt buộc

B5. Sinh sản controller và view

Chuột đề xuất thư mục controller => showroom => showroom new scaffolded cửa nhà => MVC 5 Controller with view, using entity framewrok

*
*
Ở phía trên tất cả bọn họ sẽ generate cả controller và view của Student Mã Sản Phẩm, cùng với Course với Enrollment những bạn làm tương tự như nhéRun ứng dụng và được kết quả
*
Run tiện ích và được kết quảTrong database đã bao gồm bảng
*

Các bước thực hiện khi chuyển đổi Model vào Code First

Đôi khi vì nhiệm vụ ta cần phải chuyển đổi các bảng vào database, cùng với code first ta phải tiến hành như sau, tại chỗ này mình sẽ thay đổi class mã sản phẩm Student như sauĐôi khi vì trọng trách ta cần phải biến hóa hầu như bảng vào database, cùng với code first ta phải xúc tiến như sau, ở đây mình sẽ biến đổi class mã sản phẩm Student như sauusing System ; using System. Collections. Generic ; using System. Linq ; using System. Web ; namespace MyCodeFirst. Models public class Student public int Id get ; mix ; public string LastName get ; set ; public string FirstName get ; phối ; public string Address get ; phối ; / / mình thêm ngôi trường address public DateTime EnrollmentDate get ; set ; public virtual ICollectionEnrollments get ; phối ; Ta vào tool => Nuget package manager => Package manager consoleThực hiện 3 câu theo lần lượt : enable-migrationsAdd-Migration AddAddressToStudentUpdate-DatabaseKết qua ta đã tất cả thêm cột address vào bảng student

*

Tổng kết

Do bảng student đã đổi khác nên các bạn cùng đề xuất xóa StudentController và mọi View khớp ứng và sinh sản lại như bước 5 nhằm tránh lỗi nhé+ Ưu điểm : siêu thông dụng ( bởi vì những lập trình sẵn viên thường xuyên không thích thiết kế DB, tuy thế thích thiết kế class ) kiểm soát trọn vẹn code Model, thêm xóa sửa nằm trong tính vô cùng dễ dàngKhông phải nặng đầu tư tưởng về DB. Đối với giải pháp tiếp cận này, DB chỉ là loại “ cục ” data, kéo ra xài thôiCó thể version control Database .


+ nhược điểm : những biến hóa cấu tạo trực tiếp bên trên DB vẫn mấtKhó trấn áp rất nhiều column sẽ tạo nên trên DbHơi khó khi tích phù hợp với Db bao gồm sẵn .Theo bản thân code-first để giúp đỡ tất cả họ nắm và hiểu được cơ phiên bản về tiến trình generate tài liệu, sẽ giúp cho người mới học hoàn toàn rất có thể thuận một thể tiếp cận. Đặc biệt nó hỗ trợ cho ta dữ thế chủ động hơn trong việc thêm sửa giỏi xóa mã sản phẩm .Bài viết được tham khảo từ blog của anh haitqd, trên đây là nội dung bài viết tiếp theo về series asp .net mvc của mình, mọi tín đồ cho mình nhận xết để thay đổi tốt hơn tương tự như động lực để mình làm các nội dung bài viết tiếp theo nhé

*
*
Bài viết được tham khảo thêm từ blog của anh haitqd, trên đây là bài viết tiếp theo về series asp. Net mvc của mình, mọi fan cho mình nhấn xết để chuyển đổi tốt hơn tương tự như động lực để mình có tác dụng những bài viết tiếp theo nhé