powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Генерирование кода класса из EF Model
7 сообщений из 7, страница 1 из 1
Генерирование кода класса из EF Model
    #39247514
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Как сгенерировать кастомизированный класс из модели? Модель создает, например, такой класс

Код: c#
1.
2.
3.
4.
5.
6.
public partial class HCMUser
    {
        public int RecId { get; set; }
        public string UserTitle { get; set; }
        public string UserFirstName { get; set; }
...



Мне надо добавить аттрибуты и так, чтоб они больше не перезаписывались при генерации класса

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
 public partial class HCMUser
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int RecId { get; set; }
        [Display(Name = "Title")]
        public string UserTitle { get; set; }
...



Спасибо.
...
Рейтинг: 0 / 0
Генерирование кода класса из EF Model
    #39247524
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanza,

http://stackoverflow.com/questions/28907229/custom-changes-to-entity-generated-classes

мы любим code first, и есть за что.
...
Рейтинг: 0 / 0
Генерирование кода класса из EF Model
    #39247538
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Эта-то статья и представляет собой проблему.
Зачем там создается, скажем, Student Entity, а потом код вручную копируется для создания класса? Система сама потом создает partial class в руте, возникает неоднозначность и я прихожу к тому, с чего начал: есть 2 класса с одним и тем же именем, один я кастомизирую, но бестолку, система использует автосгенерированный.
Как автогенерировать, но сохранить атрибуты?
...
Рейтинг: 0 / 0
Генерирование кода класса из EF Model
    #39247603
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanza,

Давайте с другого боку подойдём. Зачем вам эти атрибуты?

Атрибуты можно для некоторых целей навесить с помощью отдельного класса мета-данных, вот так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    [MetadataType(typeof(HCMUserMeta))]
    public partial class HCMUser
    {
        public int RecId { get; set; }
        public string UserTitle { get; set; }
        public string UserFirstName { get; set; }
        ...
    }

    public partial class HCMUserMeta
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int RecId { get; set; }

        [Display(Name = "Title")]
        public string UserTitle { get; set; }
        ...
    }



Выделенное красным вы добавить можете в partial класса. И оно не перезатрётся. И наделит ваш класс метаданными из указанного класса в атрибуте MetadataTypeAttribute. Для слоя презентации этого будет вполне достаточно.
...
Рейтинг: 0 / 0
Генерирование кода класса из EF Model
    #39247604
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanza,

Ещё вариант, это использовать свой интерфейс, например, IHCMUser — и там навесить нужные вам атрибуты, подсунуть этот интерфейс для сгенерированного класса через его partial. Правда потом придётся работать с экземплярами через интерфейс.
...
Рейтинг: 0 / 0
Генерирование кода класса из EF Model
    #39247630
mabanza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Этот подход классный.
MetaDataType - какая ассембли понадобится для подключения? Уж не MEF ли?
А вообще решение отличное.

Насчет зачем - да так. Использую MVC с data annotation.
Спасибо.
...
Рейтинг: 0 / 0
Генерирование кода класса из EF Model
    #39247700
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mabanzaMetaDataType - какая ассембли понадобится для подключения? Уж не MEF ли?

Не, System.ComponentModel.DataAnnotations

https://msdn.microsoft.com/ru-ru/library/system.componentmodel.dataannotations.metadatatypeattribute(v=vs.110).aspx


mabanzaНасчет зачем - да так. Использую MVC с data annotation.

Тогда этот вариант подойдёт. Провайдер мета-модели MVC учитывает атрибут [MetadataType] и будет применять аннотации.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Генерирование кода класса из EF Model
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]