ASP .NET模型验证:在模型中访问DBContext是否可以?

时间:2015-08-18 21:15:11

标签: c# asp.net asp.net-mvc entity-framework validation

使用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始终为空。

提前致谢! :)

0 个答案:

没有答案
相关问题