Добавление DataAnnotations в автоматически сгенерированный класс DBML? MVC 2.0 ASP.NET - PullRequest
4 голосов
/ 17 февраля 2010

Я беспокоюсь об этом, поскольку мои изменения будут перезаписаны, когда файл dbml будет автоматически сгенерирован (как это часто бывает).

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

... что расширяемая стрелка в моем списке dbml-файлов отсутствует, при щелчке правой кнопкой мыши и выборе «Просмотреть код» отображается пустой частичный класс, как показано ниже ...

Partial Class FPDataContext
End Class

Итак, я даже не могу видеть класс! У кого-нибудь есть идеи по поводу любой из этих проблем?

Я использую VS2010 RC и просто занимаюсь разработкой приложения MVC 2.0, в котором я хочу использовать аннотации пользовательского интерфейса, такие как [UIHint("RelativeDateTime")]

редактирование:

проблема решена, спасибо, Стив, вот мое редактирование версии VB в качестве примера ...

Imports System.ComponentModel.DataAnnotations

<MetadataType(GetType(CommentMetaData))> _
Partial Public Class Comment
End Class

Public Class CommentMetaData
    <UIHint("PostedSince")> _
    Public Property DateAdded() As DateTime

End Class

Ответы [ 2 ]

7 голосов
/ 17 февраля 2010

Вы можете использовать функцию «Класс друзей» в DataAnnotations, чтобы определить валидации для вашего типа. Это в основном означает, что вы определяете валидации для другого класса, но вы также можете определить этот класс «внутри» вашего существующего класса:

[MetadataType(typeof(CommentMetaData))]
public partial class Comment {
}

public class CommentMetaData {
    [StringLength(50),Required]
    public object Name { get; set; }
    [StringLength(15)]
    public object Color { get; set; }
    [Range(0, 9999)]
    public object Weight { get; set; }
}
1 голос
/ 07 августа 2011

Возможное решение: http://linqtometadataaddin.codeplex.com:

Linq To MetaData AddIn - это инструмент Visual Studio 2010, который создает класс метаданных для файла dbml.Это дополнение рекомендуется для приложений Asp.net DynamicData

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...