Tôi đang sử dụng DDD và NHibernate để duy trì đối tượng miền của mình. Trong cơ sở dữ liệu của tôi, mỗi bảng có liên quan đến một thực thể có bốn cột phụ (CreatedBy, UpdateBy, CreatedDate, UpdateDate) được sử dụng để theo dõi kiểm toán. Tôi đang sử dụng mẫu kho lưu trữ mà chỉ cho phép lưu trữ tổng hợp các gốc. Khi NHibernate cố gắng lưu các thực thể trên gốc tổng hợp, tôi nhận được một lỗi SQL DateTime vì các thực thể không có thuộc tính kiểm toán của họ được thiết lập. Có cách nào trong NHibernate để thiết lập các thuộc tính trên các đối tượng ngay trước khi lưu?Thuộc tính thiết lập NHibernate tự động khi lưu
Dưới đây là một ví dụ nhỏ. Tôi có một đối tượng Order là gốc tổng hợp. Tôi cũng có các đối tượng OrderNote là con của đơn đặt hàng. Khi tôi thêm một OrderNote vào thứ tự và sau đó lưu thứ tự một ngoại lệ được ném bởi vì CreatedDate/UpdatedDate được thiết lập để DateTime.MinValue mà sẽ gây ra một tràn DateTime SQL. Vì các cột kiểm tra này là một phần của sự kiên trì và không liên quan đến miền vấn đề, tôi không muốn gốc tổng hợp Order để thiết lập các thuộc tính này khi ghi chú được thêm vào. Các cột/thuộc tính kiểm tra chỉ nên được biết bởi khuôn khổ kiên trì chứ không phải miền. Tôi muốn có thể nói với NHibernate để thiết lập các thuộc tính này khi lưu hoặc cập nhật. Có cách nào để làm việc này không?
Tuyệt vời. Đó chính xác là những gì tôi đang tìm kiếm. Tôi mới sử dụng NHibernate và không biết tính năng này. Tôi có giao diện IAuditable được triển khai với các thuộc tính được bảo vệ để miền không thể nhìn thấy chúng. – awilinsk