私は、値オブジェクトクラスFullNameをEmployeeエンティティクラスのプロパティとして使用しているとします。 FullNameには、初期イニシャル、ニックネームなどがあります。ドメインの観点からは、FullNameのFirstNameプロパティとLastNameプロパティの両方が評価されるようにしたいと考えています。nhibernateバリデータの使用
私はこれを属性ではなく、EmployeeValidator:ValidationDef {Employee}オブジェクトの一部として表現したいと考えています。
まず、FullName(つまりFirstAndLAstNameRequired)のクラスバリデータを作成してから、EmployeeのFullNameプロパティがValidAttributeのいくつかの控えめな形式を使用してValidであると言う必要がありますか?
まだ、this documentationがそこに一番出ているようですが、3歳になっています。私が見逃した新しいものがありますか? http://fabiomaulo.blogspot.com/search/label/Validator
ここにある:私はまだこれを考え出したていないが、私はおそらくここNHib検証情報の最良のソースが何であるかを発見した
乾杯、
Berryl
UPDATE
/// <summary>A person's name.</summary>
public class FullName
{
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string MiddleName { get; set; }
public virtual string NickName { get; set; }
}
public class EmployeeValidator : ValidationDef<Employee>
{
public EmployeeValidator()
{
Define(x => x.FullName).FirstAndLastNameRequired(); // how to get here!!
}
}
UPDATE FOR DAVフルネームを取得するにはID
public class FullNameValidator : ValidationDef<FullName>
{
public FullNameValidator() {
Define(n => n.FirstName).NotNullable().And.NotEmpty().And.MaxLength(25);
Define(n => n.LastName).NotNullable().And.NotEmpty().And.MaxLength(35);
// not really necessary but cool that you can do this
ValidateInstance
.By(
(name, context) => !name.FirstName.IsNullOrEmptyAfterTrim() && !name.LastName.IsNullOrEmptyAfterTrim())
.WithMessage("Both a First and Last Name are required");
}
}
public class EmployeeValidator : ValidationDef<Employee>
{
public EmployeeValidator()
{
Define(x => x.FullName).IsValid(); // *** doesn't compile !!!
}
}
基本的には、最初の行がコンパイルされないことを除いて(私は必要なもののように思えますが)、私はあなたに同意します。投稿時に最新の更新をご覧ください。 – Berryl
Odd。多分私は忘れてしまった内部配線があったと思ったが、この方法はNHibernate.Validator.Cfg.Loquacious名前空間から来ている。私はNHibernate.Validator、バージョン= 1.2.0.3001を使用しています - あなたは同じバージョンを持っていますか? – David
https://nhcontrib.svn.sourceforge.net/svnroot/nhcontrib/trunk/src/NHibernate.Validator/src/NHibernate.Validator/Cfg/Loquacious/IRelationshipConstraints.cs – David