7

У меня есть Subsonic3 Active Запись сгенерированного частичного класса пользователя, который я расширил некоторыми методами в отдельном частичном классе.Добавление DataAnnontations к генерируемым частичным классам

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

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

    ... 
} 

В примерах приведена ошибка «Участник уже определен».

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

ответ

10

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

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

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

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

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

1

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

+0

Также это объясняет изящный способ позволить дозвуковой даже создать этот класс приятель для вас HTTP://subsonicproject.com/docs/User_talk:Minus4 – Korayem