Где разместить теги аннотации данных? - PullRequest
2 голосов
/ 11 января 2011

Я просматриваю pro asp.net mvc 2.0 framework и похоже, что он помещает свои теги аннотаций данных в классы, которые также генерируют linq to sql.

  [Table(Name = "Products")]
    public class Product
    {
        [HiddenInput(DisplayValue = false)]
        [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
        public int ProductID { get; set; }

        [Required(ErrorMessage = "Please enter a product name")]
        [Column] public string Name { get; set; }

        [Required(ErrorMessage = "Please enter a description")]
        [DataType(DataType.MultilineText)]
        [Column] public string Description { get; set; }

        [Required]
        [Range(0.01, double.MaxValue, ErrorMessage = "Please enter a positive price")]
        [Column] public decimal Price { get; set; }

        [Required(ErrorMessage = "Please specify a category")]
        [Column] public string Category { get; set; }

        [Column]
        public byte[] ImageData { get; set; }

        [ScaffoldColumn(false)] [Column]
        public string ImageMimeType { get; set; }

Однако мне интересно, что произойдет, если я не буду разрабатывать свою базу данных таким образом. Что произойдет, если я просто добавлю к своему решению файл linqtosql.dbml (класс linq to sql), в котором я получу этого замечательного дизайнера.

Куда бы я поместил все эти аннотации данных, я бы сделал другой класс, в котором содержался бы весь этот контент? Или, может быть, в представлении моделей?

Ответы [ 2 ]

4 голосов
/ 11 января 2011

Вы пытались использовать атрибут MetadataType?

public class IProductMetadata
{         
    [HiddenInput(DisplayValue = false)]
    int ProductID;

    [Required(ErrorMessage = "Please enter a product name")]         
    string Name;

    [Required(ErrorMessage = "Please enter a description")]         
    string Description;
    // etc
}

[MetadataType(typeof(IProductMetadata))]
public partial class Product
{
}

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

0 голосов
/ 11 января 2011

Я делаю это на модели представления и использую AutoMapper для отображения между объектом данных и моделью представления.

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