Hầu hết (nếu không phải tất cả) các khung POCO thực thể của tôi có các chức năng ảo. Tôi cần các chức năng này để được ảo để các thực thể có thể được tải lười biếng.Làm thế nào để tránh gọi hàm ảo trong hàm tạo?
Nếu tôi khởi tạo Accommodations
trong hàm tạo thì tôi sẽ gọi hàm ảo trong hàm tạo, đó là thực hành không tốt.
Nhưng làm cách nào tôi có thể khởi tạo Accommodations
nếu không có trong hàm tạo?
public class Venue
{
public Venue()
{
Accommodations = new HashSet<Accommodation>();
}
public virtual ICollection<Accommodation> Accommodations { get; set; }
}
điểm tải lười biếng là _not_ để khởi tạo nó ở tất cả, cho đến khi lần dùng đầu tiên. –
@JohnWillemse Nếu tôi để cho nó null tôi sẽ nhận được ngoại lệ null trong quan điểm của tôi. –
Không, bạn thử nghiệm cho null và khởi tạo nó khi cần thiết. Xem câu trả lời của Willem Duncan dưới đây để biết cách sử dụng. Có lẽ chúng ta đang bối rối các hình mẫu khác nhau ở đây, theo nhận xét của Daniel về cùng một câu trả lời. –