相关疑难解决方法(0)

在自定义验证属性中使用DB上下文

我正在尝试在我的Core 2项目中创建一个valdiation属性.它需要根据数据库中保存的现有值列表验证该值.

下面的代码不起作用,它无法访问数据库上下文.

任何想法为什么/如何纠正?

public class BibValidatorAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(
        object value, ValidationContext validationContext)
    {
        RaceEntryViewModel raceEntry = (RaceEntryViewModel)validationContext.ObjectInstance;
        ApplicationDbContext _context = new ApplicationDbContext();

        var dbraceEntry = _context.RaceEntries.FirstOrDefault(c => c.Id == raceEntry.Id);

        if(raceEntry.BibNumber != dbraceEntry.BibNumber)
        {
            if (value != null)
            {
                var raceentries = from r in _context.RaceEntries
                                  select r;

                var mycount = raceentries.Count(c => c.BibNumber == raceEntry.BibNumber);

                if (mycount != 0)
                {
                    return new ValidationResult("The bib number entered already exists");
                }
                else
                {
                    return ValidationResult.Success; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-2.0

0
推荐指数
1
解决办法
1404
查看次数

标签 统计

asp.net-core-2.0 ×1

c# ×1