Одним из вариантов может быть добавление дополнительного свойства к вашей модели, которое вычисляет длину коллекции, а затем проверяет ее:
public ICollection<string> Somethings { get; set; }
[Range(1, 9999, ErrorMessage = "At least one Something is required")]
public int SomethingsCount => Somethings == null ? 0 : Somethings.Count;
* 1004 дополнительное свойство к вашей модели, но если вы ленивы, то, возможно, это хороший вариант для вас.
Лучший вариант, согласно комментарию Дениса и этот ответ , вы можете определить свой собственный атрибут проверки
public class RequiredCollectionAttribute : ValidationAttribute
{
public override bool IsValid(object value) => value is IList list && list.Count > 0;
}
И использовать его вот так
[RequiredCollection(ErrorMessage = "At least one Something is required")]
public ICollection<string> Somethings { get; set; }