Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 EF Core DBFirst - как аннотировать полученные классы?  [new]
ValGer
Member

Откуда: Псков
Сообщений: 407
Добрый день!
Вопрос такой: после миграции по созданию классов по существующей базе данных получаю классы, что называется, в "чистом" виде.
    public partial class RNagradi
    {
        public short NomerNagradi{ get; set; }
        public string NameNagradi{ get; set; }
    }

Но хотелось бы их аннотировать, чтобы дать нормальное имя, прикрутить регулярное выражение для проверки ввода и прочее...
Типа:
    public partial class RNagradi
    {
        [Display(Name=Номер награды"]
        public short NomerNagradi{ get; set; }

        [Display(Name=Наименование награды"]
        public string NameNagradi{ get; set; }
    }


Однако, после изменения структуры базы (а они неизбежны) и проведения очередной миграции, эти внесённые изменения, скорее всего сотрутся. Как тут поступать, чтобы сохранить аннотации?
С уважением ВВГ
25 июл 19, 16:42    [21934593]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
love_bach
Member

Откуда:
Сообщений: 515
забудь про эту всю фигню
настрой миграции отдельно
25 июл 19, 20:11    [21934794]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
hVostt
Member

Откуда:
Сообщений: 15810
ValGer
Как тут поступать, чтобы сохранить аннотации?


Никак. Сами выбрали отвратительный способ работы с данными, сами и страдайте :)
25 июл 19, 21:05    [21934823]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
ValGer
Member

Откуда: Псков
Сообщений: 407
hVostt,

Спасибо, утешили!
26 июл 19, 10:46    [21935116]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
MsGuns
Member

Откуда:
Сообщений: 61
hVostt
ValGer
Как тут поступать, чтобы сохранить аннотации?


Никак. Сами выбрали отвратительный способ работы с данными, сами и страдайте :)


Самый умный, да ?
А если базе 100 лет в обед, там стотыщ таблиц и столько же вьюх, из которых в моем проекте нужно максимум 5-10 ?
3 авг 19, 00:03    [21941056]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20519
MsGuns
в моем проекте нужно максимум 5-10 ?
ValGer
после изменения структуры базы (а они неизбежны) и проведения очередной миграции
5-10 непрерывно меняющихся таблиц? Жесть!
3 авг 19, 00:16    [21941059]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
MsGuns
Member

Откуда:
Сообщений: 61
Shocker.Pro
MsGuns
в моем проекте нужно максимум 5-10 ?
ValGer
после изменения структуры базы (а они неизбежны) и проведения очередной миграции
5-10 непрерывно меняющихся таблиц? Жесть!


Вы слышали про корпоративные БД ? Это когда есть монстр типа Паруса и тебе дают маленькие права на некоторое крохотное подмножество информации для решения какой-то задачи. Даже не таблицы, а вьюхи. А если в права входят изменения в таблицах, то их можно выполнять только соотв. ХП. Какой тут CodeFirst, уважаемый ?
3 авг 19, 01:31    [21941065]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
MsGuns
Member

Откуда:
Сообщений: 61
Базами занимаюсь давно, опыт кой-какой есть. Поработав с EF, я понял так:
Model First/Code First хороши когда:
а) Проект предусматривает разработку БД "с нуля"
б) SQL-сервер не слишком хорошо известен разработчикам, а изучать его особенности нет ни времени, ни желания.
в) Бизнес-логика SQL-сервера полностью строится "под проект" и не предвидится конкуренции со стороны других разработчиков или проектов.
г) Проект предполагает в будущем масштабирование БД, в т.ч. "переезд" на другой тип SQL-сервера
д) Не будет проблем с заливкой содержимого БД как в тестовом, так и в режиме эксплуатации.

Но минусы этих подходов вытекают из их же плюсов. Например, в моем случае БД постоянно обновляется, причем очень существенно, иногда до 90%. Имеется в виду не метаданные, а содержимое таблиц.
Кроме того, проектирование БЛ SQL-сервера в специализированной среде (том же SQL Managment Studio) дает много вкусностей, таких, как скриптовая отладка, тонкое управление транзакциями, имитация многопользовательских запросов (например, для ловли "дедлоков") и много чего еще.

Лично для себя я вижу единственный существенный минус DataBase-First - это "слет" шаблонных хэлперов в моделях. Однако их польза часто невелика т.к. разметку в представлениях все равно приходится переписывать ручками.

Очень любопытно почитать комменты, а также критику опытных разрабов.
3 авг 19, 01:54    [21941066]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20519
MsGuns
Вы слышали про корпоративные БД ? Это когда есть монстр типа Паруса и тебе дают маленькие права на некоторое крохотное подмножество информации для решения какой-то задачи. Даже не таблицы, а вьюхи. А если в права входят изменения в таблицах, то их можно выполнять только соотв. ХП. Какой тут CodeFirst, уважаемый ?
Я что-то говорил про CodeFirst?
Я к тому, что в 5 таблиц можно и руками пару полей добавить, а не пытаться нагородить dbfirst
3 авг 19, 11:24    [21941113]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
MsGuns
Member

Откуда:
Сообщений: 61
Shocker.Pro
MsGuns
Вы слышали про корпоративные БД ? Это когда есть монстр типа Паруса и тебе дают маленькие права на некоторое крохотное подмножество информации для решения какой-то задачи. Даже не таблицы, а вьюхи. А если в права входят изменения в таблицах, то их можно выполнять только соотв. ХП. Какой тут CodeFirst, уважаемый ?
Я что-то говорил про CodeFirst?
Я к тому, что в 5 таблиц можно и руками пару полей добавить, а не пытаться нагородить dbfirst


При условии "база под проект" согласен однозначно.
3 авг 19, 12:52    [21941145]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
hVostt
Member

Откуда:
Сообщений: 15810
MsGuns
Самый умный, да ?
А если базе 100 лет в обед, там стотыщ таблиц и столько же вьюх, из которых в моем проекте нужно максимум 5-10 ?


как уже сказали выше, кодогенерация для 5-10 таблиц это из пушки по воробьям
кроме того, выбор EF в таких условиях -- это не от большого ума

ну и замыкая тему, если уж вам так упёрлась кодогенерация с аннотациями, забейте её в БД. почти любая БД поддерживает комментарии ко всем объектам -- таблицы, поля, хп и т.д., используйте её в кодогенерации.

правда не знаю, зачем вам это.
4 авг 19, 04:01    [21941432]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
hVostt
Member

Откуда:
Сообщений: 15810
MsGuns
а) Проект предусматривает разработку БД "с нуля"


проблема в том, что "разработка БД" у старой школы это самоцель, а не средство. отсюда боль и слёзы

MsGuns
б) SQL-сервер не слишком хорошо известен разработчикам, а изучать его особенности нет ни времени, ни желания.


это невероятное заблуждение. ORM это вовсе не про возможность работать с БД без знаний о СУБД. тем более, практика показывает, что всё как раз наоборот. требуется иметь более глубокие знания для эффективного использования ORM, кодогенерации, миграций и проч.

MsGuns
в) Бизнес-логика SQL-сервера полностью строится "под проект" и не предвидится конкуренции со стороны других разработчиков или проектов.


попытка засунуть бизнес-логику в SQL уже говорит достаточно о горе разработчиках и проектировщиках


MsGuns
г) Проект предполагает в будущем масштабирование БД, в т.ч. "переезд" на другой тип SQL-сервера


какой проект вообще это может предполагать? и зачем? если это не платформа для продажи под ключ с использованием хранилища на выбор заказчика.


MsGuns
д) Не будет проблем с заливкой содержимого БД как в тестовом, так и в режиме эксплуатации.


не понял, о чём здесь идёт речь. что за проблемы.


MsGuns
Лично для себя я вижу единственный существенный минус DataBase-First - это "слет" шаблонных хэлперов в моделях. Однако их польза часто невелика т.к. разметку в представлениях все равно приходится переписывать ручками.


минусов больше. но всё это не имеет смысла обсуждать с людьми, которые так привыкли работать. и всё тут. это жесточайшая привычка, парадигма мышления. создавать таблички, писать процедурки, гонять запросики -- наше всё.

в то время, как другие люди занимаются делом :)
4 авг 19, 04:15    [21941433]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2027
hVostt
MsGuns
а) Проект предусматривает разработку БД "с нуля"


проблема в том, что "разработка БД" у старой школы это самоцель, а не средство. отсюда боль и слёзы

Да пусть пилят свой монолит типа Паруса как хотят. Все через это проходили, ну или большинство :)
4 авг 19, 06:43    [21941444]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2027
MsGuns
А если базе 100 лет в обед, там стотыщ таблиц и столько же вьюх, из которых в моем проекте нужно максимум 5-10 ?

Пора бы призадуматься о распиле монолита.
Не нужно вашему проекту быть прибитому наглухо к нему Картинка с другого сайта.
4 авг 19, 06:47    [21941445]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2027
MsGuns
Бизнес-логика SQL-сервера полностью строится "под проект" и не предвидится конкуренции со стороны других разработчиков или проектов.

Откройте для себя такое понятие как Bounded Context, хотя бы ради любопытства.

ИМХО в любой предметной области они выделяются и проблем с конкуренцией быть не должно.
4 авг 19, 07:00    [21941448]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
MsGuns
Member

Откуда:
Сообщений: 61
hVostt, Весьма благодарен Вам и Дмитрию за развернутые комментарии. Для этого, собственно, и заглядываю на этот ресурс. Вы оба правы. Но что делать, если всю свою трудовую деятельность я "пилил" БД по-старинке. Переучиваться уже поздно, да и незачем,- я ведь пенсионер уже :) Работаю для себя и нескольких друзей, которые по вашим меркам совсем профаны :)
Однако ваши советы и подсказки "в тему" чрезвычайно полезны, экономят массу времени и "левелапят" меня круто :)
Я иногда допускаю иронию и даже некоторый цинизм в своих постах, но прошу прощения за мое "старческое" брюзжание. Вы делаете доброе дело, даже если сечете розгами :) Наука, - она лучше всего доходит через плеть :) Но на некоторую снисходительность все же рассчитываю в дальнейшем, ведь вы - люди умные, знающие, и поэтому можете сделать скидку на "ламеров".
4 авг 19, 13:49    [21941530]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20519
MsGuns
Самый умный, да ?
MsGuns
hVostt, Весьма благодарен Вам и Дмитрию .... ведь вы - люди умные, знающие
Картинка с другого сайта.
4 авг 19, 14:02    [21941536]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2027
MsGuns,

переучиваться не надо, надо изучать новое
в 50 с небольшим это вполне реально (сужу по старшим коллегам)

изучая DDD, CQRS и SOLID, ты не забываешь SQL, уровни изоляции транзакций, типы блокировок, индексов
от этого никуда не деться
4 авг 19, 14:09    [21941541]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2027
MsGuns
Работаю для себя и нескольких друзей

значит ничего не мешает попробовать Node.js + MongoDB Картинка с другого сайта.
4 авг 19, 14:12    [21941545]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
MsGuns
Member

Откуда:
Сообщений: 61
Дмитрий Мух
MsGuns,

переучиваться не надо, надо изучать новое
в 50 с небольшим это вполне реально (сужу по старшим коллегам)



"Старшие коллеги" РАБОТАЮТ, а не развлекаются, как я :) К тому же они работают в коллективе, а это уже совсем другая "аура"
4 авг 19, 16:49    [21941596]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 2027
MsGuns
Дмитрий Мух
MsGuns,

переучиваться не надо, надо изучать новое
в 50 с небольшим это вполне реально (сужу по старшим коллегам)



"Старшие коллеги" РАБОТАЮТ, а не развлекаются, как я :) К тому же они работают в коллективе, а это уже совсем другая "аура"

Вообщем вы обрели свою зону комфорта.. Типично..
4 авг 19, 18:41    [21941664]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
hVostt
Member

Откуда:
Сообщений: 15810
MsGuns
Но что делать, если всю свою трудовую деятельность я "пилил" БД по-старинке.


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

MsGuns
Переучиваться уже поздно, да и незачем,- я ведь пенсионер уже :)


Согласен со skyANA, не нужно переучиваться, необходимо просто пополнять свой багаж знаний и опыта.
4 авг 19, 23:51    [21941758]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
MsGuns
Member

Откуда:
Сообщений: 61
hVostt
MsGuns
Но что делать, если всю свою трудовую деятельность я "пилил" БД по-старинке.


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

MsGuns
Переучиваться уже поздно, да и незачем,- я ведь пенсионер уже :)


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


Немного пофилософствую, если позволите :)

Любые знания должны быть востребованы. Это постулат, если хотите :)
В свое время приходилось многократно менять "лошадей". С IMB 367/370 (Asm,PL/I,Fortran IV, DOS/OS/JS SVM) на CM-4 (MASM, OSRV), потом MSDOS (tasm,clipper,fox), потом Paradox - 3.5/4.5, потом Delphi, C-builder, теперь вот по просьбе друга ASP+VS :)
Но все эти переходы диктовались необходимостью. Сначала начальниками и хозяевами фирм, где я работал, потом рынком, когда у меня была уже собственная софт-фирмочка. При этом приходилось писать и проекты, которые не заканчивались ничем. По разным причинам. К 40 годам я понял главное - в любом проекте должно быть финансирование. Только при этом условии выполняется главное требование любого проекта "деньги-результат". Сделал что-то "лишнее", считай что ты занимался благотворительностью. Чего-то не-до-делал, не-до-понял, не-до-реализовал - исправляй за свой счет, хоть по выходным и ночами (боже, сколько же ночей я провел за компом - бедная моя семья :).
Сейчас ситуация такова - финансирования нет. Совсем. Никакого. Просто надо помочь близким мне людям, бывшим моим однокурсниками и ученикам. Так сложилось, что все передовые технологии живут где-то в столицах, у нас же в провинции даже знающих толком Visual Basic еще поискать надо. А если и находятся знающие, то они, как правило, все очень гордые :) Да и бегать искать у меня нет ни возможности, ни желания. Вот и приходится чтобы учить - учиться самому. Переходить на что-то совсем новое нету желания, если честно. Зачем ?
5 авг 19, 14:51    [21942115]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26604
MsGuns
Зачем ?

Помогать не только близким людям но и всему миру :) Выйти на следующий уровень своего развития.

https://www.freecodecamp.org/
https://en.wikipedia.org/wiki/FreeCodeCamp
5 авг 19, 18:44    [21942375]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
hVostt
Member

Откуда:
Сообщений: 15810
MsGuns
Сделал что-то "лишнее", считай что ты занимался благотворительностью.


Смотря считать "лишним". В каком из миров все 100% вклада дают 100% результата?
Препарирование лягушек, ни приносящее ни пользы, ни денег тоже благотворительность? :)

Опыт не всегда можно получить только за оплачиваемое время.


MsGuns
Вот и приходится чтобы учить - учиться самому. Переходить на что-то совсем новое нету желания, если честно. Зачем ?


Идеально, когда вы не только понимаете "зачем", но вам это ещё и нравится.
Хобби, являющееся работой -- лучшее, что может случиться в трудовой деятельности человека.
5 авг 19, 22:28    [21942507]     Ответить | Цитировать Сообщить модератору
 Re: EF Core DBFirst - как аннотировать полученные классы?  [new]
hVostt
Member

Откуда:
Сообщений: 15810
MsGuns
Так сложилось, что все передовые технологии живут где-то в столицах, у нас же в провинции даже знающих толком Visual Basic еще поискать надо


Мне вот тож так когда-то казалось. Но это неправда. В этих столицах, в оплоте самых передовых технологий, найти толковых, трудолюбивых людей в команду это великое достижение.
5 авг 19, 22:32    [21942508]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить