, как заметил @LBushkin, Attributes
нужны постоянные времени компиляции.
Я бы изменил ваш класс с:
public class UniqueAttribute : ValidationAttribute
на:
public class UniqueAttribute<T> : ValidationAttribute
where T : DataContext{
protected T Context { get; private set; }
...
}
ииспользуйте его как:
[Required]
[StringLength(10)]
[Unique<DataContext>("Groups","name")]
public string name { get; set; }
Это поможет вам внедрить объект DataContext, если необходимо, вместо создания экземпляра каждый раз
HTH
Редактировать: так как атрибут не можетВозьмите универсальный параметр, это может быть другой потенциальный код:
public class UniqueAttribute : ValidationAttribute{
public UniqueAttribute(Type dataContext, ...){
if(dataContext.IsSubClassOf(typeof(DataContext))){
var objDataContext = Activator.CreateInstance(dataContext);
}
}
}
и использовать его как:
[Required]
[StringLength(10)]
[Unique(typeof(DataContext), "Groups","name")]
public string name { get; set; }
HTH на этот раз:)