Vẫn quen với khung Entity nhưng tôi đã nhìn thấy mã như dưới đây, nơi họ có setter riêng cho id trong Entity.lý do tại sao có setter riêng trong thực thể
public int Id { get; private set; }
public string FirstName { get; set; }
public string LastName { get; set; }
Tại sao một số người nên đặt riêng tư. Trường Id này được tự động tạo trong cơ sở dữ liệu và đó có phải là lý do được đặt thành riêng tư không?
Ngoài ra tại sao chúng ta cần hàm tạo riêng và hàm tạo công khai trong thực thể như dưới đây?
private Emp() { }
public Emp(string name, string lastname)
{
FirstName = firstname;
LastName = lastname;
}
Ồ vì vậy bắt buộc phải có nhà xây dựng cá nhân và công khai? – Happy
@ Rất vui, không bắt buộc phải có hàm tạo _parameterless_ cho EF để có thể tạo đối tượng của bạn. Nó có thể là riêng tư hoặc công khai, điều đó không quan trọng. Tất cả các nhà xây dựng khác là tùy chọn. Thông thường, mọi người chỉ cần tạo một hàm dựng không tham số công khai (hoặc không có hàm tạo nào cả - sau đó hàm tạo không tham số được tạo tự động). Nhưng trong tác giả ví dụ của bạn muốn _prevent_ tạo Emp mới mà không cung cấp tên và họ (để nhà phát triển không quên làm điều đó), vì vậy bạn có hai nhà xây dựng một trong số đó là riêng tư. – Evk
bạn có nghĩa là nó không bắt buộc? – Happy