2010-06-15 34 views
5

Tôi dự định mở rộng các hàm tạo của một số thực thể trong khung Entity của tôi (4).Entity Framework .. constructor một phần

Tuy nhiên, làm cách nào để đảm bảo rằng hàm tạo của tôi được chạy sau khi mô hình đã chạy. tức là tôi muốn đảm bảo rằng đối tượng chứa dữ liệu từ cơ sở dữ liệu trước khi tôi làm việc trên cơ sở dữ liệu trong hàm tạo của mình.

+5

Bạn nên cân nhắc đánh dấu một số câu trả lời cho (nhiều) câu hỏi của mình. Điều này có thể sẽ giúp bạn nhận được phản hồi có chất lượng hơn. Chỉ cần nhấn dấu kiểm gần câu trả lời thích hợp cho câu hỏi của bạn. –

+0

Bạn không biết về các câu hỏi khác của mình, nhưng câu hỏi này không có câu trả lời cho nó .... – hminaya

+0

bản sao có thể có của [Mô hình xây dựng tùy chỉnh một phần của mô hình lớp học đầu tiên EF 5 thế nào?] (Http://stackoverflow.com/câu hỏi/14485052/ef-5-model-first-partial-class-custom-constructer-how-to) - có một giải pháp tuyệt vời có liên quan đến việc chỉnh sửa các mẫu T4. –

Trả lời

1

Sử dụng constructor chaining.

+2

Cảm ơn Pavel Xây dựng chuỗi tôi không nghĩ rằng sẽ giúp đỡ. Khung thực thể tạo ra: partial class ABC { \t ABC() {} } tôi tạo: partial class ABC { \t ABC() {làm điều gì đó ở đây} } Tôi muốn tôi constructor được gọi sau khi thực thể framwork một .. để đối tượng được điền dữ liệu để tôi có thể 'làm điều gì đó ở đây' với nó .. – Adam

+0

không bố trí độc đáo trong khu vực nhận xét này .. xin lỗi – Adam

+1

Bạn không thể làm điều đó, xin lỗi. Bạn không thể có một nửa của một phương thức (hoặc constructor) ở một nơi, và một nửa của cùng một phương thức (hoặc constructor) ở một nơi khác - nó không phải là những gì các lớp/phương thức làm một phần. –

2

Không có hàm tạo được tạo nào ngoài hàm tạo mặc định; các đối tượng được tạo thông qua một phương thức nhà máy, và được khởi tạo đơn giản sau khi xây dựng.

Bạn có thể viết hàm tạo mặc định của riêng mình và mã được tạo sẽ gọi nó trước khi khởi tạo tất cả các thuộc tính được tạo. Nếu bạn viết constructor không mặc định của riêng bạn, bạn cũng sẽ phải viết constructor mặc định của riêng bạn, nếu không thì tệp thiết kế sẽ không biên dịch, vì nó giả định một hàm tạo mặc định tồn tại.