Code first trong entity framework

Code First là gì?

Entity Framework sẽ reviews giải pháp tiếp cận Code First vào Entity Framework 4.1. Code First chủ yếu hữu dụng vào Thiết kế hướng domain.

Bạn đang xem: Code first trong entity framework

Trong phương pháp tiếp cận Code First, bạn triệu tập vào miền của áp dụng với bắt đầu sinh sản những lớp cho thực thể miền thế vày xây đắp đại lý dữ liệu trước rồi tạo ra những lớp khớp với thi công đại lý dữ liệu của người tiêu dùng. Hình sau đây minch họa biện pháp tiếp cận Code First.

*

Nhỏng bạn cũng có thể thấy trong hình trên, Entity Framework API sẽ tạo các đại lý tài liệu dựa trên thông số kỹ thuật cùng các lớp miền của người sử dụng. Vấn đề này Tức là bạn phải ban đầu viết code trước bởi C# hoặc VB.NET cùng tiếp đến Entity Framework (EF) sẽ tạo cửa hàng tài liệu từ code của khách hàng.

Quy trình thao tác làm việc cùng với Code First

Hình dưới đây minh họa các bước cải tiến và phát triển Code First.

*

Quy trình cải tiến và phát triển Theo phong cách tiếp cận Code First sẽ là: Tạo hoặc sửa thay đổi những lớp miền -> cấu hình các lớp miền này bởi những nằm trong tính ghi chú dữ liệu hoặc Fluent API -> Tạo hoặc cập nhật lược thứ các đại lý tài liệu bằng automated migration hoặc code-based migration.

lấy một ví dụ Code First vào Entity Framework

Giả sử rằng họ ý muốn chế tác một vận dụng đơn giản và dễ dàng đến Trường ABC. Người sử dụng vận dụng vẫn có thể thêm và cập nhật thông báo về học viên, lớp, gia sư và khóa đào tạo và huấn luyện.

Ttuyệt vị xây dựng các bảng cơ sở dữ liệu trước tiên, chúng ta sẽ bước đầu tạo nên các lớp cho miền. Trước hết, sản xuất những lớp Student và Grade trong số ấy từng lớp Student links cùng với một tấm Grade nlỗi ví dụ ngơi nghỉ bên dưới. Đây được Hotline là mối quan hệ một-nhiều. Tìm phát âm về phong thái Entity Framework làm chủ quan hệ giữa các thực thể trên phía trên.

public class Student public int StudentID get; set; public string StudentName get; set; public DateTime? DateOfBirth get; set; public byte<> Photo get; set; public decimal Height get; set; public float Weight get; set; public Grade Grade get; set; Tạo lớp Grade nlỗi hình dưới đây.

public class Grade public int GradeId get; set; public string GradeName get; set; public string Section get; set; public ICollection Students get; set; Bây tiếng, chúng ta đã sản xuất dứt những lớp miền ban sơ đến ứng dụng của Trường ABC.

Cách tiếp cận Code First yên cầu một lớp Context được kế thừa trường đoản cú lớp DbContext. Tạo một lớp Context nhỏng tiếp sau đây kế thừa từ lớp DbContext và các trực thuộc tính DbSet cho những lớp Student với Grade.

DbSet là một tập vừa lòng những lớp thực thể (còn được gọi là tập thực thể), bởi vậy Cửa Hàng chúng tôi đang khắc tên thuộc tính là số nhiều nlỗi Students với Grades.

namespace EF6Console public class SchoolContext: DbContext public SchoolContext(): base() public DbSet Students get; set; public DbSet Grades get; set; bởi vậy là họ đang chế tạo ra chấm dứt những lớp cần thiết đến phương pháp tiếp cận Code First. Bây giờ đồng hồ bạn cũng có thể thêm 1 sinch viên áp dụng lớp Context nhỏng tiếp sau đây.

namespace EF6Console class Program static void Main(string<> args) using (var ctx = new SchoolContext()) var stud = new Student() StudentName = "Bill" ; ctx.Students.Add(stud); ctx.SaveChanges(); lúc chạy vận dụng, các bạn sẽ thấy một sinch viên được thêm vào đại lý tài liệu.

Xem thêm: Hướng Dẫn Hàm Vlookup Trong Excel 2007, Hàm Vlookup Cách Sử Dụng Và Ví Dụ Cụ Thể

Nhưng cửa hàng dữ liệu ở đâu với các bảng với cột của bọn chúng ở đâu?

Đây là một trong những điểm hoàn hảo của Entity Framework Code First API. Nó tạo ra các đại lý dữ liệu dựa trên tsi số được truyền vào thủ tục khởi chế tạo cơ sở của lớp Context.

Vì Cửa Hàng chúng tôi chưa truyền bất kỳ tđắm đuối số làm sao trong cách tiến hành khởi chế tạo ra của lớp Context, cho nên nó vẫn sinh sản đại lý tài liệu EF6Console.SchoolContext vào cửa hàng tài liệu SQLEXPRESS cục bộ, như được hiển thị vào hình bên dưới.

Nó cũng tạo thành hai bảng vào các đại lý tài liệu này, Students cùng Grades dựa vào những lớp miền Student và Grade được định nghĩa sinh hoạt trên.

*

Như chúng ta cũng có thể thấy vào hình bên trên, nó vẫn tạo thành các bảng Students và Grades cùng mỗi bảng đựng các cột gồm mẫu mã dữ liệu và độ nhiều năm tương thích. Tên cột với kiểu tài liệu khớp cùng với các nằm trong tính của các lớp miền khớp ứng.

Nó cũng đã tạo ra khóa bao gồm cho cột StudentId và GradeId cùng chế tác khóa ngoại mang lại cột Grade_GradeId.

Bằng biện pháp này, chúng ta không bắt buộc chế tác các đại lý dữ liệu trước, bạn cũng có thể bắt đầu viết một áp dụng với nó sẽ tạo nên cơ sở dữ liệu trường đoản cú những lớp miền của người tiêu dùng.

Lưu ý: Nếu bạn sửa thay đổi các lớp này cùng chạy lại ứng dụng, thì nó vẫn ném nhẹm nước ngoài lệ sau.
*

Bạn buộc phải hướng đẫn chiến lược khởi tạo thành cơ sở tài liệu vào lớp Context để sửa thay đổi những lớp miền với chạy ứng dụng toàn thể. Chiến lược khởi tạo thành cửa hàng dữ liệu sẽ được trình diễn chi tiết tại 1 bài viết khác.

Bạn có thắc mắc có tác dụng vậy như thế nào nó tạo nên cơ sở tài liệu có các bảng, những cột với vẻ bên ngoài dữ liệu với độ dài tương thích, khóa thiết yếu, khóa nước ngoài không? Câu vấn đáp là thực hiện các quy ước vào Code First.

Các quy ước vào Code First

Các quy ước là những cỗ phép tắc mặc định tự động hóa thông số kỹ thuật một quy mô khái niệm dựa trên các lớp miền của người sử dụng lúc thao tác làm việc cùng với cách tiếp cận Code First.

Nlỗi các bạn đang thấy trong ví dụ làm việc trên, Entity Framework API đã cấu hình các khóa chủ yếu, khóa ngoại, các quan hệ, đẳng cấp tài liệu của cột, v.v. từ những lớp miền mà lại ko bắt buộc thông số kỹ thuật bổ sung.

Như vậy là do những quy ước của Entity Framework Code First. Nếu các lớp miền của người tiêu dùng tuân thủ theo đúng những quy ước thì lược đồ dùng các đại lý dữ liệu sẽ được cấu hình dựa vào những quy ước này.

Xem thêm: Hướng Dẫn Cách Làm Hòn Non Bộ Mini Có Thác Nước Đơn Giản Mà Cực Đẹp

Các quy ước trong Entity Framework 6.x Code First được quan niệm trong namespace System.Data.Entity.ModelConfiguration.Conventions .


Chuyên mục: Kiến Thức Bổ Ích