使用ASP .NET MVC我有一个名为Entity1
的模型,我需要在其中进行自定义验证。
我搜索了一段时间,发现实施IValidatableObject
我可以实现Validate
方法来做我想要的事情。现在我在这个过程中遇到的问题是,我需要使用相关Entity1
的另一个属性验证Entity2
的属性(通过相关的意思是数据库关系)。 / p>
我拥有的是:
public partial class Entity1: IValidatableObject
{
private EntitiesContext db = new EntitiesContext ();
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (!Validation1())
{
yield return new ValidationResult(@"Error message.", new[] { "Property1" });
}
}
private bool Validation1()
{
if (this.Property1 != db.Entity2.First().Property2)
{
return false;
}
return true;
}
}
这是我正在尝试做的一个简化示例,但我想弄清楚的是,如果使用“db”对象来进行验证就可以了。显然我可以稍后使用一些依赖注入来修改它,但我想确定这是否是进行这种验证的正确方法,或者是否存在另一种方法来实现这一点。
PS:我也试图像这样访问这种关系,但关系总是null
:
this.Property1 != this.Entity2.Property2
在后面,this.Entity2
始终为空。
提前致谢! :)