Vì vậy, người dùng mới NHibernate; cố gắng quấn quanh não tôi.NHibernate có thể kiểm tra xem lược đồ db đã được tạo chưa?
Tôi đang dự tính cách xử lý triển khai và sau đó thêm các tiện ích vào ứng dụng web (có thể yêu cầu các lớp kiên trì của riêng chúng). Tôi đã nghĩ rằng việc sử dụng SchemaExport
cho việc triển khai sẽ hoạt động khá tốt, nhưng tôi đã tự hỏi nếu có một cách quá NHibernate nhận được để cho tôi biết một cách phổ biến, dựa trên mã mà một xuất khẩu giản đồ đã được thực hiện, hoặc không phải. Về cơ bản, tôi muốn làm smething như trong giả này:
if(!_cfg.HasSchemaForType(typeof(MyType))
ExportSchema(typeof(MyType));
else
UpdateSchema(typeof(MyType));
nơi hai chức năng sẽ sử dụng trong nội bộ SchemaExport
hoặc SchemaUpdate
, tương ứng.
EDIT: Guys, tôi đánh giá cao câu trả lời cho đến nay, nhưng họ thiếu điểm một chút. Những gì tôi đang cố gắng thiết lập là một cách để ứng dụng cho phép bổ sung và loại bỏ các phần bổ sung có thể yêu cầu thay đổi đối với db. Tôi không nói về việc phiên bản mã của riêng tôi hoặc tương tự (ít nhất, không phải là chức năng chính của nó). Vì vậy, câu hỏi là ít hơn về khi tôi triển khai các ứng dụng, và nhiều hơn nữa về khi tôi thêm hoặc loại bỏ một plug-in. Có plugin theis (do đó kiểm tra kiểu mã giả) đã được triển khai trước đó chưa? Nếu có, hãy chạy bản cập nhật. Nếu không, hãy chạy xuất. Có lý?
Không cố gắng giải quyết vấn đề triển khai ứng dụng. Tôi đã thêm một số ghi chú bổ sung để làm rõ. Cám ơn phản hồi của bạn! – Paul
Tôi không nghĩ rằng anh ta có nghĩa là tại thời gian triển khai ... điều này sẽ phải ở thời gian chạy hoặc thời gian khởi tạo ... các plug-in sẽ phải chịu trách nhiệm về sự phụ thuộc của riêng họ. – Webjedi
Cảm ơn; Tôi đánh dấu của bạn là 'trả lời' vì nó là hoàn chỉnh nhất. Tôi nghĩ rằng có một mối quan tâm riêng biệt mà theo dõi các plugin đã được triển khai có lẽ là con đường tốt nhất để đi, như bạn đề nghị trong viên đạn thứ ba của bạn. – Paul