Где разместить класс валидатора fluentvalidation в двухпроектном решении
У меня есть веб-проект и проект библиотеки классов в одном решении. Проект библиотеки классов содержит модели для всех неидентичных данных. Я создал класс валидатора для проверки уникальности таблицы (категории). Когда я помещаю уникальный атрибут в модель, я получаю "тип или имя пространства имен 'CategoryValidator' не может быть найден...".
Вот класс CategoryValidator
namespace Spicy.Entities.Validators { public class CategoryValidator : AbstractValidator<Category> { public CategoryValidator() { RuleFor(x => x.Name).NotNull().WithMessage("Category Name is required.").Must(UniqueName).WithMessage("This category name already exists."); } private bool UniqueName(Category category, string name) { using (RecipeContext db = new RecipeContext()) { var dbCategory = db.Categories .Where(x => x.Name.ToLower() == name.ToLower()) .SingleOrDefault(); if (dbCategory == null) return true; return dbCategory.ID == category.ID; } } } }
Вот эта категория модель
using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Spicy.Entities { [Validator(typeof(CategoryValidator))] public class Category { public int ID { get; set; } [StringLength(20, ErrorMessage = "Category cannot be longer than 20 characters")] [Required] public string Name { get; set; } [Required] [DisplayName("User Name")] [StringLength(20, ErrorMessage = "User Name cannot be longer than 20 characters")] public string UserName { get; set; } public virtual ICollection<Recipe> Recipes { get; set; } }
Вот вам и глобальный.код эйсакс
public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); FluentValidationModelValidatorProvider.Configure(); } }
Где я должен поместить класс валидатора и как мне обойти проблемы, с которыми я сталкиваюсь?
помощь.
Что я уже пробовал:
Когда я помещаю класс validator в проект библиотеки классов, он не может получить доступ к контексту (RecipeContext) из веб-проекта. Если я попытаюсь поместить класс validator в веб-приложение, то получу сообщение об ошибке " тип или имя пространства имен 'CategoryValidator' не может быть найден...". я также попытался установить пакет Fluent Validation в обоих проектах.