Giả sử có một class A
có một tham chiếu đến class B
như thế nàyđối tượng Làm thế nào để sử dụng Validate lồng tự động
class A
{
[NotNull]
string Alpha;
B bObject;
}
class B
{
[NotNull]
string Beta;
}
A a = new A();
a.Alpha = "test"
a.bObject = new b();
a.bObject.Beta = null;
Bây giờ khi gọi một cái gì đó giống như Tạo cho một thể hiện của A, mã gọi NHibernate.Validator.Engine.ValidatorEngine.Validate
Tuy nhiên, nó chỉ xác nhận các thành viên của A (Alpha)
. Khi NHibernate
cố gắng duy trì đối tượng, nó không thành công vì cơ sở dữ liệu không cho phép null cho Object
.
Có thể định cấu hình để xác thực A
cũng xác thực các thuộc tính của B
không?
* EDIT:
Con đường tôi đang nhận được khoảng này hiện đang tự gọi Validate(A.bObject)
bất cứ nơi nào mà kho cần phải tạo/cập nhật A
, ví dụ:
Trong kho cho A
public void Update(A entity)
{
//I want to avoid having to do this in every class repository that has a
//reference to B
var errorsList = valEngine.Validate(entity.bObject);
if (errorsList .Length == 0)
{
status = base.Create(entity);
//Simply calls the appropriate NH function to persist the object
}
}
Làm cách nào để tránh lặp lại dòng xác thực B
mỗi lần?