Есть ли способ проверить свойство, которое должно быть уникальным на модели? Например, пользователь может создавать и редактировать «Продукт», но они не могут создавать продукт с существующим ProductCode, а также не могут редактировать продукт и изменять ProductCode на уже существующий код.MVC 2 Уникальная проверка индекса
Я пробовал использовать пользовательский атрибут.
public class Unique : ValidationAttribute
{
public override bool IsValid(object value)
{
var products = Repository.Store.Products.Where(x => x.ProductCode == value);
return (products.Count() == 0);
}
}
Все, что я могу покрыть этим раствором не позволяет пользователю добавлять/обновлять продукт, когда код уже существует в БД. Это не позволяет пользователю редактировать существующий продукт, потому что, когда он будет отправлен, он увидит, что код уже существует (это будет код для продукта, который они пытаются отредактировать.) И возвращает false.
Невозможно иметь дело с уникальным индексом в MVC 2, я искал часы, даже нашел другие темы в stackoverflow, но ничего с твердым решением.
Возможно, я не понимаю ваш вопрос, но является ли ProductCode основным ключом? Если нет, то почему? – 2010-12-15 13:28:51