モデル上で一意である必要があるプロパティを検証する方法はありますか?たとえば、ユーザーは「製品」を作成および編集できますが、既存のProductCodeを使用して製品を作成したり、製品を編集してProductCodeを既存のコードに変更したりすることはできません。
カスタム属性を使用してみました。
public class Unique : ValidationAttribute
{
public override bool IsValid(object value)
{
var products = Repository.Store.Products.Where(x => x.ProductCode == value);
return (products.Count() == 0);
}
}
このソリューションでカバーできるのは、コードがDBに既に存在する場合に、ユーザーが製品を挿入/更新できないようにすることだけです。これにより、ユーザーは既存の商品を編集できなくなります。送信すると、コードが既に存在していることがわかり(編集しようとしている商品のコードになります)、falseが返されます。
MVC 2で一意のインデックスを処理する方法はありませんか。何時間も検索し、stackoverflowに関する他のトピックも見つけましたが、固溶体はありません。