2011-08-25 42 views
7

Is it okay để có constructor mặc định đặt một số giá trị mặc định như:Entity Framework POCO constructor mặc định

public class BetScreenshot 
{ 
    ... 

    public BetScreenshot() 
    { 
     CreationDateTime = DateTime.UtcNow; 
     StatusEnum = BetScreenshotStatus.NotProcessed; 
    } 
} 

linh cảm xấu đầu tiên của tôi là các đặc tính này có thể được đánh dấu là sửa đổi trong EF tổ chức instantiation. Nhưng có thể có cái gì khác?

+0

Điều này không đủ điều kiện làm [thực thể POCO] (http://msdn.microsoft.com/en-us/library/dd468057.aspx), bạn cần có một hàm tạo tham số. Ngoài ra, người ta không thể biết liệu bạn có bật theo dõi thay đổi hay không bởi vì các khai báo thuộc tính không hiển thị (chúng cần phải là 'virtual' nếu bạn muốn kích hoạt theo dõi thay đổi). – casperOne

+0

@casperOne Constructor trông có vẻ vô nghĩa đối với tôi ...? – Mike

+0

@Mike: Nhìn vào [sửa lịch sử] (http://stackoverflow.com/revisions/7190472/3) liên quan đến thời điểm nhận xét. – casperOne

Trả lời

7

Vâng, bạn có thể khởi tạo thuộc tính. Có hiệu quả trong quá trình xây dựng bằng cách sử dụng một hàm tạo parameterless, các trường của kiểu được khởi tạo mặc định. Bạn chỉ đang chọn một mặc định khác. Đó là một common practice đẹp cho các thực thể và bộ sưu tập con mới, nhưng không có lý do gì mà các thuộc tính đơn giản không thể được khởi tạo. Tôi làm điều này cho một số thực thể và EF nhận diện chính xác đối tượng là mới/chưa sửa đổi.

Các vấn đề liên quan