ujjwal uniyal Ответов: 2

Metadatatype атрибут не работает


Привет,
я работаю над приложением MVC и использовал EF. [Первый подход к базе данных].
Я создал шаблон Scaffold из EF. У меня есть 2 таблицы tblEmployee и tblDepartment. Изменил свое имя в от edmx дизайнер и сотрудник отдела.

Теперь , когда я перехожу в индексное представление, которое показывает мне всех сотрудников, есть два столбца с именем "Имя", один для сотрудника и один для отдела. Поэтому теперь я хочу изменить название столбца "имя" для отдела на "название отдела".

Поскольку я использую DB first approach, я не могу сделать изменения в DataModel.Дизайнер.в CS
Поэтому я создал частичный класс Department [ название такое же, как и в Designer.cs]
украсил его атрибутом MetaDataType и передал в параметр type класс со свойством name.

До сих пор все было хорошо. Но теперь, когда я запускаю проект, я не вижу изменений в представлении индекса. не знаю, что теперь делать.Я новичок в MVC. любая помощь очень ценится !!!

Что я уже пробовал:

Это новый частичный класс, который я создал
[MetadataType( typeof(DepartmentMetaData))]
    public partial class Department
    {
    }

    public class DepartmentMetaData
    {
        [Display(Name = "Department Name")]
        public string Name { get; set; }
    }



это свойство находится в DataModel.Дизайнер.в CS
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
      [DataMemberAttribute()]
      public global::System.String Name
      {
          get
          {
              return _Name;
          }
          set
          {
              OnNameChanging(value);
              ReportPropertyChanging("Name");
              _Name = StructuralObject.SetValidValue(value, true);
              ReportPropertyChanged("Name");
              OnNameChanged();
          }
      }


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

2 Ответов

Рейтинг:
16

ujjwal uniyal

Оказывается, мой файл EDMX был вне моей папки модели, в которой я создал свой частичный класс. Либо оба должны быть снаружи, либо оба должны быть внутри папки. Как только я изменил местоположение своего класса, он начал работать. :)


Рейтинг:
0

SeliyaHilal

Ваш класс модели и мета-класс, который вы создали, должны иметь одно и то же пространство имен, например :

namespace AppName.Models