Использование UIHint в сочетании с классом, сгенерированным LINQ to SQL - PullRequest
0 голосов
/ 31 мая 2011

Я использовал LINQ to SQL для создания файла dbml, который содержит модель базы данных для моей таблицы базы данных. Я хочу использовать UIHint, чтобы позволить MVC представить некоторые поля как DropDownLists или Checkboxes в режиме редактирования. Но если я изменю файл, он будет потерян, если он будет восстановлен. Как мне решить эту проблему? Я довольно новичок в MVC и все еще учусь. Я установил контроллер с представлениями для всех элементов CRUD, но теперь я настраиваюсь и сталкиваюсь с этой проблемой.

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Поскольку Linq-to-SQL автоматически генерирует частичные классы, вам необходимо создать частичный «класс собеседников», куда вы добавите свои аннотации данных. Ваш собеседник отражает части автоматически сгенерированного класса, которые вам нужно изменить. Вы связываете их вместе с [MetadataType (typeof (BuddyClassName))]] Класс частичного собеседника и автоматически созданный частичный класс будут объединены вместе при компиляции вашего проекта.

В приведенном примере:

  • Ваше пространство имен "Project.Models"
  • Ваш класс Linq-To-Sql называется "Продукты"

    using System.ComponentModel.DataAnnotations;
    
    namespace Project.Models
    {
      [MetadataType(typeof(ProductsMeta))]
      public partial class Products
      {
        // You can extend the products class here if desired.
    
        public class ProductsMeta
        {
          // This is a Linq-to-Sql Buddy Class      
          // In here you can add DataAnnotations to the auto-generated partial class
    
          [Key]
          public int ProductKey { get; set; }
    
          [Display (Name = "Product Name")]
          [Required(ErrorMessage = "Product Name Required")]
          [StringLength(255, ErrorMessage = "Must be under 255 characters")]
          public string ProductName { get; set; }
    
          [UIHint("MultilineText")]
          public string Description { get; set; }
        }
      }
    }
    

Эти статьи были очень полезны:

  1. ScottGu: ASP.NET MVC 2: проверка модели
  2. Как проверить данные модели с помощью атрибутов аннотаций данных
  3. Проверка с помощью валидаторов аннотации данных
0 голосов
/ 01 июня 2011

Если вы собираетесь использовать сущности напрямую, вы должны создать частичный класс и добавить туда свои аннотации. Таким образом, при обновлении модели вы не потеряете свои аннотации.

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