Добавление DataAnnontations к сгенерированным частичным классам - PullRequest
7 голосов
/ 05 августа 2009

У меня есть частичный пользовательский класс Subsonic3 Active Record, который я расширил некоторыми методами в отдельном частичном классе.

Я хотел бы знать, возможно ли добавить аннотации данных к членусвойства в одном частичном классе, где он объявлен в другом Subsonic Generated, я попробовал это.

public partial class User
{
    [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
    public string Email { get; set; }

    ...
}

В этих примерах выдается ошибка «Элемент уже определен».

Я думаю, что мог бы видеть пример того, что я пытаюсь сделать с Dynamic Data и Linq2Sql.

Ответы [ 3 ]

10 голосов
/ 05 августа 2009

Что вам нужно будет сделать, это создать « класс приятелей » и применить аннотации данных к этому классу:

[MetadataType(typeof(UserValidation))]
public partial class User 
{
  ...
}

public class UserValidation
{
  [DataType(DataType.EmailAddress, ErrorMessage = "Please enter an email address")]
  public string Email { get; set; }
}
1 голос
/ 08 января 2011

Вы должны создать класс приятеля, как объяснено здесь Скоттом Гатри http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

0 голосов
/ 06 августа 2009

Это не даст прямого ответа на ваш вопрос, но у меня была та же проблема, и вместо того, чтобы использовать DataAnnotations, я до сих пор пользовался каркасом FluentValidation {0} с большим успехом. Он работает хорошо, потому что он обеспечивает большую часть той же функциональности, но не применяет проверку с использованием атрибутов для членов класса. Проверка происходит в совершенно отдельном классе, который действует на проверяемый класс (то есть UserValidator).

{0}: http://fluentvalidation.codeplex.com/

...