powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Покритикуйте EF code-first
245 сообщений из 245, показаны все 10 страниц
Покритикуйте EF code-first
    #38963872
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А то почитал на SO и вообще - чем дальше по времени его, code-first, появления, тем меньше критики и больше противных сладострастных восхвалений.

А вот МСУ против и даже в джаву подался в том числе и из-за этого!

Какие проблемы есть у CF на сегодняшний день? Или даже так. Вот появился CF в EF 4, что там изменялось за это время? Есть смысл старые версии EF использовать (у новых же, вроде, всякие требования к версиям СУБД, винды, фрейморвка и Студии, нет?) или в них CF совсем уж плохой и незрелый?


Просто я тут новую БД буду делать и решил попробовать "новую" технологию. При этом буду довольно часто менять схему БД - ну, столбцы там в табличке добавлять-убирать - т. к. тема предметной области пока неясная и всё будет устаканиваться по ходу дела.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38963924
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, вот сообщение

http://stackoverflow.com/a/12614004

Человек пишет

авторnot allow you to specify what I consider very basic and common database configuration information. For example table indexes, security metadata, or have a primary key containing more than one column.

Потом ему отвечают

авторYou can define composite keys using code first

Потом

авторFor future readers, this is no longer the case, you can add Indexes, multi-column primary keys, and this kind of things in EF Code First

Т. е. такое ощущение, что сначала CF был с ограничениями, покрывающими не все кейсы создания БД, по сравнению с моделированием в визуальном редакторе или с SQL, а потом стал лучше. Так вот, с какой версии EF этот CF стал достаточно развитым, чтобы не натыкаться на ограничения через раз?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38964166
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересное чтиво. Как анекдот почти

http://yandex.ru/search/?text=code first мсу site:sql.ru/forum&lr=65

Товарищь уже дымится http://www.sql.ru/forum/896472/ef-code-first-ne-soedinyaetsya-s-bd
Сразу видно, что уже тогда он понимал, что за джавой будущее, а шарп - приходящее.

Тоже интересная тема http://www.sql.ru/forum/1135322/muzhiki-podumali )))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38971086
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже можно покритиковать - в атрибутах требуются захардкоденные строками имена сущностей для FK. Как избежать? - Fluent API. Но это же так многословно, этот АПИ - вместо коротких и понятных атрибутов.

Например, связь 1-1..0 на атрибутах:

Код: c#
1.
[Key, ForeignKey("MyEntity")]



а на fluent API:


Код: c#
1.
2.
3.
4.
5.
6.
7.
            modelBuilder
                .Entity<MyAnotherEntity>()
                .HasKey(e => e.MyEntityId);

            modelBuilder.Entity<MyEntity>()
                .HasOptional(e => e.MyAnotherEntity)
                .WithRequired(ad => ad.MyEntity);



Боремся с языком...
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38971870
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, я понимаю, что fluent API крут, но что, предлагается всё-всё кастомное запихнуть в один метод OnModelCreating, который грозится разрастись до тысяч строк?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38972706
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Не, я понимаю, что fluent API крут, но что, предлагается всё-всё кастомное запихнуть в один метод OnModelCreating, который грозится разрастись до тысяч строк?

Используй соглашения, надо избегать прямой конфигурации всеми силами. У меня обычно получается избегать почти полностью, и проблем не знаю, ни с миграциями, ни с рефакторингом, ни с переездами.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38972710
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Т. е. такое ощущение, что сначала CF был с ограничениями, покрывающими не все кейсы создания БД, по сравнению с моделированием в визуальном редакторе или с SQL, а потом стал лучше. Так вот, с какой версии EF этот CF стал достаточно развитым, чтобы не натыкаться на ограничения через раз?

С поисками серебряной пилюли и священного Грааля, покрывающего абсолютно все мыслимые и немыслимые кейсы и возможности применения, это не к области инженерии, а куда-нибудь к мистикам или любителям поп... потрепаться и почесать языком попусту. Со своими весьма конкретными задачами CF справляется с лихвой. Если хочется пиджак с переподвиподвертом, это не к CF, пиши свой расовый фреймворк для своих подвыподвертов, никто же не запрещает?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38973917
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Т. е. такое ощущение, что сначала CF был с ограничениями, покрывающими не все кейсы создания БД, по сравнению с моделированием в визуальном редакторе или с SQL, а потом стал лучше. Так вот, с какой версии EF этот CF стал достаточно развитым, чтобы не натыкаться на ограничения через раз?

С поисками серебряной пилюли и священного Грааля, покрывающего абсолютно все мыслимые и немыслимые кейсы и возможности применения, это не к области инженерии, а куда-нибудь к мистикам или любителям поп... потрепаться и почесать языком попусту. Со своими весьма конкретными задачами CF справляется с лихвой. Если хочется пиджак с переподвиподвертом, это не к CF, пиши свой расовый фреймворк для своих подвыподвертов, никто же не запрещает?
Я критикую EF не потому, что я обижен на весь мир и вообще красноглазый ненавистник виндов , а потому, что надеюсь встретить встречный комментарий, опровергающий мои "наезды". Наверное, лучше не наездами, а более конкретными вопросами. Но наездами "прикольнее" и веселее. )))

hVosttAlexey2112Не, я понимаю, что fluent API крут, но что, предлагается всё-всё кастомное запихнуть в один метод OnModelCreating, который грозится разрастись до тысяч строк?

Используй соглашения, надо избегать прямой конфигурации всеми силами. У меня обычно получается избегать почти полностью , и проблем не знаю, ни с миграциями, ни с рефакторингом, ни с переездами.
Простой пример - отношение one-to-one (ну, пусть будет one-to-one or zero). Конвенций - нет. Атрибуты - захардкоденные строки с именами свойств. Выход? - Fluent API .

Ты знаешь вариант лучше? Т. е. без многословности Fluent API, без закардкоденных строк, желательно соглашениями или удобными атрибутами.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38973927
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Простой пример - отношение one-to-one (ну, пусть будет one-to-one or zero). Конвенций - нет. Атрибуты - захардкоденные строки с именами свойств. Выход? - Fluent API .

Атрибутами это можно сделать. Соглашениями это можно сделать. Захардкоженные строки в атрибутах? Ну а как ты ещё имена проперти передашь, с этими претензиями уже к разработчикам C#/.NET, чего это они такие сякие, не разрешили нам экспрешены прямо в атрибутах? Ууух, нехорошие. Приходится обходится мерзкими хоббитцами строками.

Если тебе понадобилось что-то совсем хитрое, но хочется без блюента, то кастомые атрибуты, кастомные соглашения.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38973929
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Я критикую EF не потому, что я обижен на весь мир и вообще красноглазый ненавистник виндов , а потому, что надеюсь встретить встречный комментарий, опровергающий мои "наезды". Наверное, лучше не наездами, а более конкретными вопросами. Но наездами "прикольнее" и веселее. )))

Ну дак ты давай уместную критику. Думаешь EF не за что покритиковать? Ещё как есть. Но твои "наезды", пока критикой назвать нельзя.

"Мне не нравится флюент"
"Мне не нравятся строки"
...

Это не критика, бро ))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38973931
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Простой пример - отношение one-to-one (ну, пусть будет one-to-one or zero). Конвенций - нет. Атрибуты - захардкоденные строки с именами свойств. Выход? - Fluent API .

Атрибутами это можно сделать. Соглашениями это можно сделать.
Как? Покажи, пожалуйста. Я имею ввиду соглашениями. Атрибутами я и сам выше показал, как.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974069
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Как? Покажи, пожалуйста. Я имею ввиду соглашениями. Атрибутами я и сам выше показал, как.

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

Вот пример кастомного атрибута:

https://msdn.microsoft.com/en-us/data/jj819164#attributes

Писать код конкретного примера не буду, но думаю ты легко сам догадаешься, как сделать свой атрибут типа [OneToOneRelation].
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974164
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Как? Покажи, пожалуйста. Я имею ввиду соглашениями. Атрибутами я и сам выше показал, как.

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

Вот пример кастомного атрибута:

https://msdn.microsoft.com/en-us/data/jj819164#attributes

Писать код конкретного примера не буду, но думаю ты легко сам догадаешься, как сделать свой атрибут типа [OneToOneRelation].
ОК, возможно, можно передать в кастомный атрибут параметр типа bool IsOneToOne. Ну, переписать логику маппинга, ладно. Извернувшись, допустим, получится... Но ты-то сам как решаешь эту проблему (one-to-one)? Довольствуешься строками в атрибутах? Всё кастомное пихаешь в OnModelCreating через Fluent API? Ещё что-то?

Вот прям щас у меня проблемы нет - мне надо небольшую БД сделать и запихать в OnModelCreating с десяток таких вот 1-1..0 мне не трудно. Но меня интересует, как люди по-взрослому работают - пишут кастомный атрибуты? Может, есть стандартный воркэраунд, который я не знаю? - Меня вот это интересует - не писать кастомное, пока точно не получу информацию, что "из коробки так сделать нельзя" .
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974214
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

для связи 1-1 есть ещё вариант через complex type, но там лимитации экзистируются.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974310
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112ОК, возможно, можно передать в кастомный атрибут параметр типа bool IsOneToOne. Ну, переписать логику маппинга, ладно. Извернувшись, допустим, получится... Но ты-то сам как решаешь эту проблему (one-to-one)? Довольствуешься строками в атрибутах? Всё кастомное пихаешь в OnModelCreating через Fluent API? Ещё что-то?

Что можно, я решаю стандартными способами, для таких случаев атрибуты со строковыми значениями, которые меня ничуть не пугают и к проблемам не приводило, так как изменения модели довольно редки, к этим изменениям повышенное внимание, не понимаю в чём проблема со строковыми атрибутами? Может ты вообще строками не пользуешься? Да, я люблю типизацию, но всему своё место.

Прямых конфигураций избегаю, как конфигураций-классов, так и события в DbContext. Всё решалось пока.

Alexey2112Вот прям щас у меня проблемы нет - мне надо небольшую БД сделать и запихать в OnModelCreating с десяток таких вот 1-1..0 мне не трудно. Но меня интересует, как люди по-взрослому работают - пишут кастомный атрибуты? Может, есть стандартный воркэраунд, который я не знаю? - Меня вот это интересует - не писать кастомное, пока точно не получу информацию, что "из коробки так сделать нельзя" .

Ещё раз говорю, прямые конфигурации -- небольшое, но мелкопакостное зло. Мне удаётся всё покрыть соглашениями, по большей части стандартными, и кастомными, где нехватает. Я не пишу на каждую таблицу OnModelCreating. Если создаётся прецендент, расширяется модель соглашений, даже если она будет использоваться только для одной таблицы, пока.

А из коробки много чего нельзя делать, но можно приравнять. Тыжпрограммист, или где?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974312
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112для связи 1-1 есть ещё вариант через complex type, но там лимитации экзистируются.

Честно говоря 1-1 это чаще фейл, чем вин. Должны быть достаточные основания, чтобы впендюривать 1-1, например, для повышения производительности выборок и некоторых запросов. Зачем их навешивать вдоль и поперёк только потому, что так можно? Тем более через модель наследования 1-1 получаются вообще нативно. Давай лучше рассмотрим конкретный пример из конкретной предметной области?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974365
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112для связи 1-1 есть ещё вариант через complex type, но там лимитации экзистируются.

Честно говоря 1-1 это чаще фейл, чем вин. Должны быть достаточные основания, чтобы впендюривать 1-1, например, для повышения производительности выборок и некоторых запросов. Зачем их навешивать вдоль и поперёк только потому, что так можно? Тем более через модель наследования 1-1 получаются вообще нативно. Давай лучше рассмотрим конкретный пример из конкретной предметной области?
Да пример простой - у меня в модели предметной области есть некоторые настройки. Я их расделяю на классы - OneSettings, AnotherSettings and so on. Все эти настройки потом собираются в один класс Settings - банально через композицию (т. е. Settings имеет поля с типами OneSettings, AnotherSettings, etc.). Ну а теперь просто надо создать отображение этого всего на реляционную БД. Ну, если в лоб, то обычно такая иерархия - композиция классов - делается через 1-1..0. Ещё через это же делается отображение наследования классов.

Какие ещё варианты?

У меня пока в голове такое, что для композиции больше может подойти complext type.

Ещё вариант, что любую композицию или наследование запихнуть просто в одну большую таблицу - т. е. тупо свести все свойства из такой иерархии классов в столбцы одной таблицы. Если блобов нет и количество свойств тоже небольшое (а у меня как раз такой вариант), то должно покатить. Как ты считаешь?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974369
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня, кстати, была с самого начала мысль упростить - свести все настройки в одну таблицу, а при запросах уже вытаскивать нужные свойства и раздавать их конкретным классам настроек. Соответственно и при сохранении.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974804
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112,

Если настроек много, и они расширяемые, то наверное следует подумать о другой модели хранения, нормализовать, например, вот так:

TABLE Properties (Id, Name, Group, Type)

TABLE Values (Id, UserId, PropertyId, Value)

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

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

Самый частый кейс, где бы я применял 1:1, это вынос крупных данных (например, блобов) в отдельные таблицы, чтобы они материализовались только по запросу и для возможности вынести их, допустим, в отдельный tablespace.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974844
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЧестно говоря 1-1 это чаще фейл, чем вин. Должны быть достаточные основания, чтобы впендюривать 1-1, например, для повышения производительности выборок и некоторых запросов. Зачем их навешивать вдоль и поперёк только потому, что так можно? Тем более через модель наследования 1-1 получаются вообще нативно. Давай лучше рассмотрим конкретный пример из конкретной предметной области? Тут

message: сообщение
message_task: сообщение-задача
message_comments: сообщение-комментарий

Предлагай альтернативу.

hVosttAlexey2112,

Если настроек много, и они расширяемые, то наверное следует подумать о другой модели хранения, нормализовать, например, вот так:

TABLE Properties (Id, Name, Group, Type)

TABLE Values (Id, UserId, PropertyId, Value)EAV - зло!
Alexey2112Уже можно покритиковать - в атрибутах требуются захардкоденные строками имена сущностей для FK.И какие несчастья нам грозят из-за этого "ужаса"?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974865
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КAlexey2112Уже можно покритиковать - в атрибутах требуются захардкоденные строками имена сущностей для FK.И какие несчастья нам грозят из-за этого "ужаса"?
Рефакторинг. Наделал ты сто таблиц, наделал отображений, и тут надо поменять пару названий, которые встречаются 50 раз. Полнотекстовый поиск, вместо контекстного рефакторинга?

hVosttЕсли разброс диапазонов значений большой, от чисел до безразмерного текста, для Values можно сделать иерархию в одной таблице для хранения значений разного типа в разных полях, это в EF сделать легко.
Так, чтоли?

TABLE Values (Id, UserId, PropertyId, ValueInt, ValueDouble, ValueByteArray, ValueBool, ValueString, etc.)

Ты только скажи, если я в строке запишу только в одно поле из всех Value..., то другие будут занимать место в БД, или нет?


Ещё раз, ребята. Нет какого-то определённого правила, как лучше моделить в БД композицию классов (т. е. когда поля класса могут иметь тип другого класса)? Т. е. нельзя сказать, что композиция - только через EAV, или через 1-1..0, или только через complex types? Каждый раз подбирается по ситуации?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974880
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
И какие несчастья нам грозят из-за этого "ужаса"?
Рефакторинг. Наделал ты сто таблиц, наделал отображений, и тут надо поменять пару названий, которые встречаются 50 раз. Полнотекстовый поиск, вместо контекстного рефакторинга?Я за кодогенерацию контекста по БД, пусть даже это DbContext API (code-first).

Но если хочется именно code-first + строгая типизация, то да - Fluent. Ничего моструозного в нём нет, благо code-complete присутствует.
Alexey2112Ещё раз, ребята. Нет какого-то определённого правила, как лучше моделить в БД композицию классов (т. е. когда поля класса могут иметь тип другого класса)? Т. е. нельзя сказать, что композиция - только через EAV, или через 1-1..0, или только через complex types? Каждый раз подбирается по ситуации?Конечно, всё всегда делается в зависимости от поставленной задачи и предпочтений.

Только EAV тут маленько "сбоку", его обычно применяют, когда схема данных неизвестна на этапе разработки. Мне показалось, что здесь не тот случай.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974932
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К Тут

message: сообщение
message_task: сообщение-задача
message_comments: сообщение-комментарий

Предлагай альтернативу.

На мой взгляд, тупо. Можно воспользоваться наследованием и хранить всё в одной таблице, EF такое предлагает нативно. Или воспользоваться наследованием, если религия не позволяет в одной, хранить в нескольких таблицах. EF предлагает такое нативно. Вопросы? ))

Алексей КEAV - зло!

Какой-то нелепый наброс. Зло это бездумное, фанатичное, следование какой-то одной идеологии. В данном случае EAV это то, что доктор прописал, так как гибко и не создаёт потенциальных таблиц с овер 100 полями. И не надо мне рассказывать только сказочки и глупые нелепости о том, как некто в компании Х работал там с 10000000000 таблицами с 1000000000 полями. Если ума нет, считай калека.

Алексей КИ какие несчастья нам грозят из-за этого "ужаса"?

Ну как же, "строки -- зло!" )))))))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974933
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Рефакторинг. Наделал ты сто таблиц, наделал отображений, и тут надо поменять пару названий, которые встречаются 50 раз. Полнотекстовый поиск, вместо контекстного рефакторинга?

Даю подсказку. Именованные константы!
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974938
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Так, чтоли?

TABLE Values (Id, UserId, PropertyId, ValueInt, ValueDouble, ValueByteArray, ValueBool, ValueString, etc.)

Ты только скажи, если я в строке запишу только в одно поле из всех Value..., то другие будут занимать место в БД, или нет?

Нет, они все будут храниться как NULLABLE и места занимать не будут, не волнуйся. Просто не переживай об этом.

Alexey2112Ещё раз, ребята. Нет какого-то определённого правила, как лучше моделить в БД композицию классов (т. е. когда поля класса могут иметь тип другого класса)? Т. е. нельзя сказать, что композиция - только через EAV, или через 1-1..0, или только через complex types? Каждый раз подбирается по ситуации?

Каждый раз, для каждой отдельной задачи, в зависимости от требований, области применения и способу использования, решения могут в корне друг от друга отличаться. Вплоть даже до смены SQL на noSQL
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38974943
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ за кодогенерацию контекста по БД, пусть даже это DbContext API (code-first).

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

Кодогенерация нафиг не упала без действительно реальной в этом необходимости.


Алексей КНо если хочется именно code-first + строгая типизация, то да - Fluent. Ничего моструозного в нём нет, благо code-complete присутствует.

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

Алексей КТолько EAV тут маленько "сбоку", его обычно применяют, когда схема данных неизвестна на этапе разработки. Мне показалось, что здесь не тот случай.

EAV не панацея, но для многих случаев гибче на пару порядков, если не меньше, чем деревянный набор колонок в таблице.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975019
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей К Тут

message: сообщение
message_task: сообщение-задача
message_comments: сообщение-комментарий

Предлагай альтернативу.

На мой взгляд, тупо. Можно воспользоваться наследованием и хранить всё в одной таблице, EF такое предлагает нативно. Или воспользоваться наследованием, если религия не позволяет в одной, хранить в нескольких таблицах. EF предлагает такое нативно. Вопросы? ))Смешались в кучу люди, кони... Я про таблицы в БД, связанные отношением 1-1, ненужные, как ты утверждал выше. Про способы маппинга объектов на эти таблицы с помощью EF я ни слова.
hVosttАлексей КEAV - зло!

Какой-то нелепый наброс. Зло это бездумное, фанатичное, следование какой-то одной идеологии. В данном случае EAV это то, что доктор прописал, так как гибко и не создаёт потенциальных таблиц с овер 100 полями. И не надо мне рассказывать только сказочки и глупые нелепости о том, как некто в компании Х работал там с 10000000000 таблицами с 1000000000 полями. Если ума нет, считай калека.Никогда ещё не было проблем от количества таблиц или количества полей в них. Их должно быть столько, сколько того требует предметная область. При статичной структуре данных EAV не упёрлось.
hVosttАлексей КЯ за кодогенерацию контекста по БД, пусть даже это DbContext API (code-first).

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

Кодогенерация нафиг не упала без действительно реальной в этом необходимости.Мне удобнее создавать таблицы в дизайнере, чем описывать их в тексте C#.

hVosttАлексей КНо если хочется именно code-first + строгая типизация, то да - Fluent. Ничего моструозного в нём нет, благо code-complete присутствует.

Убого. Тяжко поддерживать при разрастании БД, с определённого момента практически не поддаётся контролю. Только для для тех, у кого просто банально не хватило тямы освоить соглашения.Кодогенерация контекста по БД по сути те же соглашения, только в другую сторону.
hVosttEAV не панацея, но для многих случаев гибче на пару порядков, если не меньше, чем деревянный набор колонок в таблице.Ну мучайся, я не против. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975020
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Рефакторинг. Наделал ты сто таблиц, наделал отображений, и тут надо поменять пару названий, которые встречаются 50 раз. Полнотекстовый поиск, вместо контекстного рефакторинга?

Даю подсказку. Именованные константы!
Т. е. ты предлагаешь где-то хранить список названий сущностей в именованных константах, а потом эти константы везде пихать, где нужно строковое имя сущности?

Вроде, должно работать, но похоже на такооой костыль. Отдаёт 80-ми-90-ми в программировании.

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

Кодогенерация нафиг не упала без действительно реальной в этом необходимости.
А у меня так - накодил БД на сишарпе, заделал её на сервер и потом смотрю в дизайнере - как ключики жёлтые расставлены и какие правила обновления-удаления установились. Проверяю, так сказать. Ну нет пока доверия этому code first. Точнее, нет доверия себе, что всё правильно в этом code first сделал.

hVosttУбого. Тяжко поддерживать при разрастании БД, с определённого момента практически не поддаётся контролю. Только для для тех, у кого просто банально не хватило тямы освоить соглашения.
Просто побольше вложенных region/endregion делаешь в OnModelCreating - это для такой-то таблицы, это для другой, а вот здесь у нас отключение PluralizingTableNameConvention, и так далее. Можно ещё иерархию классов-функций сделать, которые потом вызывать в OnModelCreating. Короче, рахитектура.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975056
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСмешались в кучу люди, кони... Я про таблицы в БД, связанные отношением 1-1, ненужные, как ты утверждал выше. Про способы маппинга объектов на эти таблицы с помощью EF я ни слова.

Может ты прочитаешь ещё раз? Я говорил, что мапить можно как в 1:1, так и в одну таблицу. 1:1 -- это не единственное решение задачи. В твоём случае профита даже муха не нарыдала, просто ХЗ пойми зачем этот мусор в БД. Ради какой великой цели, не понятно.

Алексей КНикогда ещё не было проблем от количества таблиц или количества полей в них. Их должно быть столько, сколько того требует предметная область. При статичной структуре данных EAV не упёрлось.

Речь идёт о наборах свойств, их много, они могут группироваться. Мало ли что там ещё понадобится. EAV тут упёрлось очень даже.

Давай без EAV, дай мне на каждое свойство свой доступ для каждого пользователя, настраиваемый естественно в какой-нибудь админке. Съел? В EAV такое лепится и много чего другого проще пареной репы. Нахрена себе жизнь усложнять сразу же? Ради какой великой цели?

Алексей КМне удобнее создавать таблицы в дизайнере, чем описывать их в тексте C#.

Просто ты работаешь один, давай начистоту.

Алексей ККодогенерация контекста по БД по сути те же соглашения, только в другую сторону.

Это херня какая-то для поддержки кучки старпёров, ничего кроме дизайнера в этой жизни не осиливших
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975064
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Т. е. ты предлагаешь где-то хранить список названий сущностей в именованных константах, а потом эти константы везде пихать, где нужно строковое имя сущности?

Вроде, должно работать, но похоже на такооой костыль. Отдаёт 80-ми-90-ми в программировании.

По сути всё программирование из этого состоит. А на дворе уже 2015

Alexey2112А у меня так - накодил БД на сишарпе, заделал её на сервер и потом смотрю в дизайнере - как ключики жёлтые расставлены и какие правила обновления-удаления установились. Проверяю, так сказать. Ну нет пока доверия этому code first. Точнее, нет доверия себе, что всё правильно в этом code first сделал.

По мне, так code-first это полный контроль. Как на этапе компиляции, так и всякие чекинги, от Sonar Qube, до StyleCop, + ещё можно своих на рослине налепить. Плюс юнит-тестирование, плюс, плюс, плюс... Много их, и гибко.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975105
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КСмешались в кучу люди, кони... Я про таблицы в БД, связанные отношением 1-1, ненужные, как ты утверждал выше. Про способы маппинга объектов на эти таблицы с помощью EF я ни слова.

Может ты прочитаешь ещё раз? Я говорил, что мапить можно как в 1:1, так и в одну таблицу. 1:1 -- это не единственное решение задачи.Ты утверждал, что 1-1 в БД зло. Разумеется, это не единственное решение, но оно имеет право на жизнь не менее, чем все остальные.
hVosttВ твоём случае профита даже муха не нарыдала, просто ХЗ пойми зачем этот мусор в БД. Ради какой великой цели, не понятно.Таки без 1-1 в БД там станет очень неудобно. Великая цель, иметь вложения одновременно у задач и комментариев, там описана. Но ты как всегда не читаешь, но осуждаешь.

hVosttАлексей КНикогда ещё не было проблем от количества таблиц или количества полей в них. Их должно быть столько, сколько того требует предметная область. При статичной структуре данных EAV не упёрлось.

Речь идёт о наборах свойств, их много, они могут группироваться. Мало ли что там ещё понадобится. EAV тут упёрлось очень даже.Это пока не начнётся использование этих свойств в прикладном коде. А сделать форму их редактирования, аля PropertyGrid, с EAV конечно удобнее, если повезёт конечно - если типы значений свойств будут одинаковыми.

hVosttДавай без EAV, дай мне на каждое свойство свой доступ для каждого пользователя, настраиваемый естественно в какой-нибудь админке. Съел? В EAV такое лепится и много чего другого проще пареной репы. Нахрена себе жизнь усложнять сразу же? Ради какой великой цели?Ну делай методы в сервисах, выдающие свойства по одному или группами, давай права на эти методы. Замути кодогенерацию, если это поможет.

hVosttАлексей КМне удобнее создавать таблицы в дизайнере, чем описывать их в тексте C#.

Просто ты работаешь один, давай начистоту.Знаю я эту печальную историю: только CRM-щики 35+ LVL работают группами, нам до них ещё далеко.

hVosttАлексей ККодогенерация контекста по БД по сути те же соглашения, только в другую сторону.

Это херня какая-то для поддержки кучки старпёров, ничего кроме дизайнера в этой жизни не осиливших Объективненько. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975121
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttРечь идёт о наборах свойств, их много, они могут группироваться. Мало ли что там ещё понадобится. EAV тут упёрлось очень даже.
Всё так - и состав свойств может поменяться, и тип уже существующих - мы только разрабатываем предметную область. Но вот с этим EAV в EF какая-то хрень - надо городить подобие репозитория (даже если тебе репозиторий вообще не сдался) или просто некий код, который бы объект из модели предметной области раскладывал на таблицы EAV и обратно. Иногда советуют обойтись просто разрежённой таблицей (вот как ты советовал с кучей ValueXXX разных типов), а не EAV.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975188
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Но вот с этим EAV в EF какая-то хрень - надо городить подобие репозитория (даже если тебе репозиторий вообще не сдался) или просто некий код, который бы объект из модели предметной области раскладывал на таблицы EAV и обратно.
Вот гайзы так делают http://stackoverflow.com/q/3825172/808128
авторWe handled the older (EAV) database by bleeding its structure into the software, then mapping to POCOs in the repository .
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975543
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТы утверждал, что 1-1 в БД зло. Разумеется, это не единственное решение, но оно имеет право на жизнь не менее, чем все остальные.

Молоток не зло, но если применять его только по той причине, что он у тебя есть, то зло безусловно.

Алексей КТаки без 1-1 в БД там станет очень неудобно. Великая цель, иметь вложения одновременно у задач и комментариев, там описана. Но ты как всегда не читаешь, но осуждаешь.

Я всё читал и когда-то даже пытался чему-то научиться разбирая твой проект )) Твоя задача легко укладывается в 1 таблицу, возможность выбрать только инфу для для задач или комментариев не теряется, но есть возможность легко получить все вложения одним запросом, не ковыряясь в схеме БД, что выяснить, да сколько ж всего их там. Легко расширяемая, без замусоривания БД лишними таблицами. Причин 1-1 не увидел ни единой, кроме, наверное, религиозной. А религиозные причины не обсуждаются ))

Алексей КЭто пока не начнётся использование этих свойств в прикладном коде. А сделать форму их редактирования, аля PropertyGrid, с EAV конечно удобнее, если повезёт конечно - если типы значений свойств будут одинаковыми.

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

Алексей КНу делай методы в сервисах, выдающие свойства по одному или группами, давай права на эти методы. Замути кодогенерацию, если это поможет.

Чтобы замутить кодогенерацию, надо написать код. Усложнить жизнь себе и людям, которым это придётся сопровождать. Задокументировать и вносить в документацию изменения при добавлении очередного свойства. Ты любитель граблей и кактусов? Охотно верю ))

Алексей КЗнаю я эту печальную историю: только CRM-щики 35+ LVL работают группами, нам до них ещё далеко.

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

Алексей КОбъективненько. :-)

Это я про любителей дизайнеров всяких. И обычно, знающих не больше одного дизайнера, ну максимум двух. Любой шаг в сторону вызывает у таких кодеров паническую реакцию. Зная это, MS замутила database first, чтобы эти люди как бы и в тренде оставались, и не отбирать у них игрушку
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975550
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Всё так - и состав свойств может поменяться, и тип уже существующих - мы только разрабатываем предметную область. Но вот с этим EAV в EF какая-то хрень - надо городить подобие репозитория (даже если тебе репозиторий вообще не сдался) или просто некий код, который бы объект из модели предметной области раскладывал на таблицы EAV и обратно. Иногда советуют обойтись просто разрежённой таблицей (вот как ты советовал с кучей ValueXXX разных типов), а не EAV.

Компромис всегда можно найти. EAV это лишь способ хранения, но не употребления. Ты можешь легко сделать маппер коллекции в твою бизнес-модель. И даже генерацию данных-пропертей в БД по бизнес-моделям. Это уже как душа лежит.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975778
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КТаки без 1-1 в БД там станет очень неудобно. Великая цель, иметь вложения одновременно у задач и комментариев, там описана. Но ты как всегда не читаешь, но осуждаешь.

Я всё читал и когда-то даже пытался чему-то научиться разбирая твой проект )) Твоя задача легко укладывается в 1 таблицу, возможность выбрать только инфу для для задач или комментариев не теряется, но есть возможность легко получить все вложения одним запросом, не ковыряясь в схеме БД, что выяснить, да сколько ж всего их там. Легко расширяемая, без замусоривания БД лишними таблицами. Причин 1-1 не увидел ни единой, кроме, наверное, религиозной. А религиозные причины не обсуждаются ))Но это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности.

hVosttАлексей КЭто пока не начнётся использование этих свойств в прикладном коде. А сделать форму их редактирования, аля PropertyGrid, с EAV конечно удобнее, если повезёт конечно - если типы значений свойств будут одинаковыми.
Какие проблемы использования в прикладном коде? Я одним запросом получил набор свойств, сгруппированных как надо, могу их отсортировать по какому-то признаку, могу скрыть отдельные свойства по другому признаку, по третьему признаку могу разрешить редактировать пользователю или нет.. Признаки -- это то, чего у колонок тупо нет и не будет никогда.Ну эти свойства вероятно предназначены для хранения настроек системы, которые будут участвовать в прикладной логике:

Код: c#
1.
var canExecute = Db.Settings.Select(s => s.CanExecute).First();

vs
Код: c#
1.
2.
3.
var canExecute = Db.Settings
    .Where(s => s.PropertyName == "CanExecute") // класс со строковыми константами будем мутить?
    .Select(s => s.Value).First();


Нам такого счастья не надо. А расширить существующие метаданные, живущие в syscolumns и т. п., это работы на 5 минут...

hVosttАлексей КНу делай методы в сервисах, выдающие свойства по одному или группами, давай права на эти методы. Замути кодогенерацию, если это поможет.

Чтобы замутить кодогенерацию, надо написать код. Усложнить жизнь себе и людям, которым это придётся сопровождать. Задокументировать и вносить в документацию изменения при добавлении очередного свойства. Ты любитель граблей и кактусов? Охотно верю ))Само ничего не делается, да...

hVosttАлексей КЗнаю я эту печальную историю: только CRM-щики 35+ LVL работают группами, нам до них ещё далеко.

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

hVosttАлексей КОбъективненько. :-)

Это я про любителей дизайнеров всяких. И обычно, знающих не больше одного дизайнера, ну максимум двух. Любой шаг в сторону вызывает у таких кодеров паническую реакцию. Зная это, MS замутила database first, чтобы эти люди как бы и в тренде оставались, и не отбирать у них игрушку Я не представляю, как можно делать большую и сложную БД без дизайнера. Пользуемся родным дизайнером из MSSQL Management Studio, он устраивает более чем. Сторонние дизайнеры вроде ERWin не предлагать.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975787
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНо это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности.
Но такой подход не верен в случае, когда предметная модель пока только устаканивается, постоянно добавляются-убираются-перемещаются-переименовываются свойства объектов (столбцы таблиц) и т. д. Да?

Т. е., по сути схема БД в этой части ещё не устоялась и потом, скорее всего, мы заменим её на более устойчивую. Тогда и сделаем нормальные сущности со связями. А пока мне выгоднее запихать всё в одну таблицу:

Settings
--------
Id
Name
Value
CategoryId


Строки будут выглядеть так:

0
Setting1
100 (integer)
0

1
Setting2
true (bool)
0

2
Setting3
F*ckYou (string)
1


Если сделать так, то в чём могут быть трудности в краткосрочной перспективе? Ну, с учётом того, что потом мы всё переделаем (и перегоним данные со старой БД в новую, конечно), когда предметная область у нас устоится.

Я имею ввиду, одной таблицы, вроде, вполне достаточно. Я теперь не понимаю, зачем городить связь из двух, как Хвост раньше предложил, или вообще из трёх, как в классическом EAV... А, понял. В классическом EAV формируются сущности, а у меня сущность одна (Settings), поэтому достаточно двух или вообще одной таблицы.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975789
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112F*ckYou EAV (string)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975793
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне вот интересно. Вот тут народ до хрипоты спорит и высказывает прямо противоположные мнения. При этом все там вроде ответственные лица, разработчики и всё такое. Т. е. каждый сделал по-своему, не один раз и у каждого всё работает. Может, где-то есть слабые места (опять же, у каждого и у любого подхода), но у них всё работает - с работы их не гонят, штрафы миллионные за потери бизнеса не впаривают, по судам не гоняют. Какой из этого можно сделать вывод?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975794
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Какой из этого можно сделать вывод?
Что все они - ограниченные балбесы, которые только в своей узкой области и преуспели, и не имеют широкого опыта. Всяк кулик своё болото хвалит.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975797
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей КНо это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности.
Но такой подход не верен в случае, когда предметная модель пока только устаканивается, постоянно добавляются-убираются-перемещаются-переименовываются свойства объектов (столбцы таблиц) и т. д. Да?

Т. е., по сути схема БД в этой части ещё не устоялась и потом, скорее всего, мы заменим её на более устойчивую. Тогда и сделаем нормальные сущности со связями. А пока мне выгоднее запихать всё в одну таблицуЕсли предметная область недостаточно формализована до начала написания программы, то проблемы будут при любом подходе.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975799
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Если сделать так, то в чём могут быть трудности в краткосрочной перспективе? Ну, с учётом того, что потом мы всё переделаем (и перегоним данные со старой БД в новую, конечно), когда предметная область у нас устоится.Этого скорее всего не произойдёт. Принцип "работает да и ладно" достаточно силён.

Alexey2112Я имею ввиду, одной таблицы, вроде, вполне достаточно. Я теперь не понимаю, зачем городить связь из двух, как Хвост раньше предложил, или вообще из трёх, как в классическом EAV... А, понял. В классическом EAV формируются сущности, а у меня сущность одна (Settings), поэтому достаточно двух или вообще одной таблицы.Сущность Settings не одна, к ней в дополнение идёт некий репозитарий, отвечающий за работу с конкретными свойствами.

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

Дело ваше конечно, просто мысли вслух...
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975847
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНо это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности.

Ты как будто в танке сидишь. Сколько тебе ещё раз сказать, что EF прекрасно работает с наследованием как разложенных в таблицах 1:1, так в одной? С точки зрения программиста разница вообще не будет заметна, но будет заметна, когда данных станет много и выбор программиста был неверен.

С 1:1 проблем больше, по опыту, но иногда это лучший выбор.

Алексей КНам такого счастья не надо. А расширить существующие метаданные, живущие в syscolumns и т. п., это работы на 5 минут...

Т.е. для каждой колонки ты таки создашь отдельную запись метаданных в отдельной таблице? Просто офигенное решение ))))) Работы на 5 минут... Спасибо, посмеялся.

Алексей КЯ не представляю, как можно делать большую и сложную БД без дизайнера. Пользуемся родным дизайнером из MSSQL Management Studio, он устраивает более чем. Сторонние дизайнеры вроде ERWin не предлагать.

Ты похоже просто тупо не видишь разницы между моделями предметной области, данных и схемой данных в БД. Для схемы данных дизайнер нафиг не упёрся. Дизайнер это не плохо вовсе, но код важнее.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975850
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСущность Settings не одна, к ней в дополнение идёт некий репозитарий, отвечающий за работу с конкретными свойствами.

Идиотизм высшей пробы )) Пятое колесо для велосипеда, которое надо возить на своём горбу.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975852
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112мне вот интересно. Вот тут народ до хрипоты спорит и высказывает прямо противоположные мнения. При этом все там вроде ответственные лица, разработчики и всё такое. Т. е. каждый сделал по-своему, не один раз и у каждого всё работает. Может, где-то есть слабые места (опять же, у каждого и у любого подхода), но у них всё работает - с работы их не гонят, штрафы миллионные за потери бизнеса не впаривают, по судам не гоняют. Какой из этого можно сделать вывод?

Это всё религия ))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975872
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КНо это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности.

Ты как будто в танке сидишь. Сколько тебе ещё раз сказать, что EF прекрасно работает с наследованием как разложенных в таблицах 1:1, так в одной? С точки зрения программиста разница вообще не будет заметна, но будет заметна, когда данных станет много и выбор программиста был неверен.

С 1:1 проблем больше, по опыту, но иногда это лучший выбор.Я знаю, что это можно решить наследованием, но мне больше нравится это решать ассоциациями. Я хочу работать с классами, один-в-один сопоставленными с таблицами в БД и связанными между собой ассоциациями. Тут и без таких подвыподвертов бардака в предметной области хватает, так мне ещё и разбираться, какой группе таблиц соответствует какой класс.

Один класс-одна таблица - это мой выбор и не тебе его осуждать. Но можешь не согласиться, твоё право.
hVosttАлексей КНам такого счастья не надо. А расширить существующие метаданные, живущие в syscolumns и т. п., это работы на 5 минут...

Т.е. для каждой колонки ты таки создашь отдельную запись метаданных в отдельной таблице? Просто офигенное решение ))))) Работы на 5 минут... Спасибо, посмеялся.Что не так?
hVosttАлексей КЯ не представляю, как можно делать большую и сложную БД без дизайнера. Пользуемся родным дизайнером из MSSQL Management Studio, он устраивает более чем. Сторонние дизайнеры вроде ERWin не предлагать.

Ты похоже просто тупо не видишь разницы между моделями предметной области, данных и схемой данных в БД. Для схемы данных дизайнер нафиг не упёрся. Дизайнер это не плохо вовсе, но код важнее .БД важнее кода.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975913
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНе понимаю, какие проблемы могут возникнуть при изменении структуры таблиц в процессе уточнения постановки задачи. Чем это сложнее модификации логики репозитария, который идёт в нагрузку к таблице Settings.
Таблицы будут наполняться данными. Данные перегонять задолбаешься, накосячишь чего-нибудь.

А данные будут, возможно, уже не тестовые. Да и вообще, этот сервис у нас будет на постоянной доработке, поэтому придётся смириться, что в БД будут нетестовые данные ещё до завершения разработки этой БД. Ну и с возможной потерей данных придётся смириться. Один плюс - потеря данных будет нашей проблемой, а не проблемой клиентов, т. к. сервис для клиентов просто выдаёт разовый результат, а все настройки, результаты и их сохранение - наша статистика и забота о её сохранении (по ней будет дорабаться модель предметной области).
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975918
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttДизайнер это не плохо вовсе, но код важнее .БД важнее кода.
БД это и есть код. Ну, когда code first.

T-SQL нафиг не нужен вообще - потому что я его не знаю и знать не хочу костыль. Вот если бы сразу .NET в этот SQL Server вогнать. Вот, code first - шаг навстречу этому.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975931
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
БД важнее кода.
БД это и есть код. Ну, когда code first.Я уже выше говорил, что я за DbContext API, но против code-first как метода разработки.
Alexey2112T-SQL нафиг не нужен вообще - потому что я его не знаю и знать не хочу костыль.Не соглашусь. EF - это продвинутый генератор SQL, не больше и не меньше. Если нет чёткого понимания, какой будет план выполнения у сгенерированного SQL - это путь в никуда.
Alexey2112Вот если бы сразу .NET в этот SQL Server вогнать. Вот, code first - шаг навстречу этому.И изменить модель данных в MSSQL с реляционной на какую-нибудь другую?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975946
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ знаю, что это можно решить наследованием, но мне больше нравится это решать ассоциациями. Я хочу работать с классами, один-в-один сопоставленными с таблицами в БД и связанными между собой ассоциациями. Тут и без таких подвыподвертов бардака в предметной области хватает, так мне ещё и разбираться, какой группе таблиц соответствует какой класс.

Где тут бардак? У меня есть Message и есть UserMessage, GroupMessage, ProjectMessage. Почему это должны быть совершенно разные таблицы, если суть у них одна, основной набор данных один, базовая логика одинаковая, основные контролы/шаблоны UI одни? С какого перепугу? Или предлагаешь это всё нагенерить? С логикой у меня всё в порядке, а у тебя? ))

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

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

Алексей КЧто не так?

Бардак, разброд и шатания, усложнение без видимых причин, кроме разве что небольшой степени упоротости )

Алексей КБД важнее кода.

А крокодил зеленее ширины слона. Рубль слаще бутерброда.

Глупые сравнения меня не интересуют, и код и БД одинаково важны, т.к. юзер останется с носом, что без одного, что без другого. Или дизайнер и БД это для тебя одно и тоже? )))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975948
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕсли нет чёткого понимания, какой будет план выполнения у сгенерированного SQL - это путь в никуда.

И как же ты живёшь с DbContext? На все LINQ запросы планы посмотрел?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975976
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ знаю, что это можно решить наследованием, но мне больше нравится это решать ассоциациями. Я хочу работать с классами, один-в-один сопоставленными с таблицами в БД и связанными между собой ассоциациями. Тут и без таких подвыподвертов бардака в предметной области хватает, так мне ещё и разбираться, какой группе таблиц соответствует какой класс.

Где тут бардак? У меня есть Message и есть UserMessage, GroupMessage, ProjectMessage. Почему это должны быть совершенно разные таблицы, если суть у них одна, основной набор данных один, базовая логика одинаковая, основные контролы/шаблоны UI одни? С какого перепугу? Или предлагаешь это всё нагенерить? С логикой у меня всё в порядке, а у тебя? ))Ты строишь систему от ООП модели, я строю от реляционной модели в БД, вот и вся разница. Мне удобнее так, тебе удобнее по другому. Мы оба правы, доказывать тут что-то глупо, оба подхода имеют право на жизнь.
hVosttАлексей КОдин класс-одна таблица - это мой выбор и не тебе его осуждать. Но можешь не согласиться, твоё право.

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

hVosttАлексей КЧто не так?

Бардак, разброд и шатания, усложнение без видимых причин, кроме разве что небольшой степени упоротости )Спасибо за ценную информацию, которая наверняка пригодится читателям форума!

hVosttАлексей КБД важнее кода.

А крокодил зеленее ширины слона. Рубль слаще бутерброда.

Глупые сравнения меня не интересуют, и код и БД одинаково важны, т.к. юзер останется с носом, что без одного, что без другого. Или дизайнер и БД это для тебя одно и тоже? )))В работающей информационной системе обычно код модифицировать проще, чем структуру БД. Обычно код меняется чаще структуры БД. Утерянный код восстановить можно, утерянную БД восстановить невозможно.

Вероятно, ты работаешь не с информационными системами, отсюда у тебя другие взгляды на ситуацию.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38975977
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЕсли нет чёткого понимания, какой будет план выполнения у сгенерированного SQL - это путь в никуда.

И как же ты живёшь с DbContext? На все LINQ запросы планы посмотрел?На все, имеющие проблемную статистику выполнения.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976017
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ знаю, что это можно решить наследованием, но мне больше нравится это решать ассоциациями. Я хочу работать с классами, один-в-один сопоставленными с таблицами в БД и связанными между собой ассоциациями. Тут и без таких подвыподвертов бардака в предметной области хватает, так мне ещё и разбираться, какой группе таблиц соответствует какой класс.

Где тут бардак? У меня есть Message и есть UserMessage, GroupMessage, ProjectMessage. Почему это должны быть совершенно разные таблицы, если суть у них одна, основной набор данных один, базовая логика одинаковая, основные контролы/шаблоны UI одни? С какого перепугу? Или предлагаешь это всё нагенерить? С логикой у меня всё в порядке, а у тебя? ))Основной набор данных один, но есть и специфичный набор данных, разный для каждого класса. Теперь включаем логику, с которой у тебя всё в порядке. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976052
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КAlexey2112Вот если бы сразу .NET в этот SQL Server вогнать. Вот, code first - шаг навстречу этому.И изменить модель данных в MSSQL с реляционной на какую-нибудь другую?
А реляционная не эмулируется на .NET? Вроде, даже с избытком. В крайнем случае можно расширение языка или библиотечку ввести. Главное, что вообще нафиг убрать всё это многообразие языков, которые все по сути делают одно и то же. Приходишь на работу - надо знать туеву кучу всякой дряни, помимо C#. А ты такой им - я знаю C#, EF Code First, WiX#, SharpDX, LINQ вместо SQL и т. д. - Нет, вы нам не подходите.

Кстати, LINQ вместо SQL - тоже нужно в массы. Тогда и маппинги с ОРМами не понадобятся - всё будет нативно сразу.

Ну есть же простейший пример в реляционной модели - *-*. Моделирование этого через промежуточную таблицу - костыль. А в ООП - легко и непринуждённо через коллекции. А теперь костыли в обратную сторону (если найдёте)?

hVosttГде тут бардак? У меня есть Message и есть UserMessage, GroupMessage, ProjectMessage. Почему это должны быть совершенно разные таблицы, если суть у них одна, основной набор данных один, базовая логика одинаковая, основные контролы/шаблоны UI одни? С какого перепугу? Или предлагаешь это всё нагенерить? С логикой у меня всё в порядке, а у тебя? ))
Может, ему удобнее иметь готовые сущности в БД по аналогии с сущностями в модели предметной области, а не выделять эти сущности после запроса в каком-нибудь репозитории.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976069
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
И изменить модель данных в MSSQL с реляционной на какую-нибудь другую?
А реляционная не эмулируется на .NET? Вроде, даже с избытком. В крайнем случае можно расширение языка или библиотечку ввести. Главное, что вообще нафиг убрать всё это многообразие языков, которые все по сути делают одно и то же. Приходишь на работу - надо знать туеву кучу всякой дряни, помимо C#. А ты такой им - я знаю C#, EF Code First, WiX#, SharpDX, LINQ вместо SQL и т. д. - Нет, вы нам не подходите.

Кстати, LINQ вместо SQL - тоже нужно в массы. Тогда и маппинги с ОРМами не понадобятся - всё будет нативно сразу.

Ну есть же простейший пример в реляционной модели - *-*. Моделирование этого через промежуточную таблицу - костыль. А в ООП - легко и непринуждённо через коллекции. А теперь костыли в обратную сторону (если найдёте)?Ну можно же сериализовать объекты в XML и хранить в отдельных файлах. Зачем нам вообще MSSQL?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976117
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КAlexey2112пропущено...

А реляционная не эмулируется на .NET? Вроде, даже с избытком. В крайнем случае можно расширение языка или библиотечку ввести. Главное, что вообще нафиг убрать всё это многообразие языков, которые все по сути делают одно и то же. Приходишь на работу - надо знать туеву кучу всякой дряни, помимо C#. А ты такой им - я знаю C#, EF Code First, WiX#, SharpDX, LINQ вместо SQL и т. д. - Нет, вы нам не подходите.

Кстати, LINQ вместо SQL - тоже нужно в массы. Тогда и маппинги с ОРМами не понадобятся - всё будет нативно сразу.

Ну есть же простейший пример в реляционной модели - *-*. Моделирование этого через промежуточную таблицу - костыль. А в ООП - легко и непринуждённо через коллекции. А теперь костыли в обратную сторону (если найдёте)?Ну можно же сериализовать объекты в XML и хранить в отдельных файлах. Зачем нам вообще MSSQL?
А кто его знает, как MSSQL хранит объекты у себя внутри. Может, и в XML иногда.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976128
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
Ну можно же сериализовать объекты в XML и хранить в отдельных файлах. Зачем нам вообще MSSQL?
А кто его знает, как MSSQL хранит объекты у себя внутри. Может, и в XML иногда.Мне, по большому счёту, всё равно, как он там хранит данные. Мне важны его возможности по их обработке, потому что очевидно, что все данные из БД на клиента я забрать не могу из-за их количества.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976161
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТы строишь систему от ООП модели, я строю от реляционной модели в БД, вот и вся разница. Мне удобнее так, тебе удобнее по другому. Мы оба правы, доказывать тут что-то глупо, оба подхода имеют право на жизнь.

Зачем ты ООП приплёл? У тебя что, в программном коде нет ООП, там эээ... мм... реляционная модель? Шта? ))))))))

Реляционная модель, это модель хранения данных, а ООП это вообще из мира программирования, там даже слово такое есть "программирование". Ты большой любитель крокодилов с ложками сравнивать.


Алексей КВ работающей информационной системе обычно код модифицировать проще, чем структуру БД. Обычно код меняется чаще структуры БД. Утерянный код восстановить можно, утерянную БД восстановить невозможно.

Опять ты несёшь какую-то чушь. Ты сравниваешь важность и возможность восстановления. Весь код может хранится в БД, прикинь? И что тогда ты мне тут скажешь? И наоборот, все данные могут храниться в коде, возьмём игрушку, где нельзя засейвиться, там нет БД вообще, что тогда важность кода вообще ниже плинтуса? Пора тебе перестать употреблять.

Алексей КВероятно, ты работаешь не с информационными системами, отсюда у тебя другие взгляды на ситуацию.

Я дружу с логикой.
А ты занимаешься сравнением жопы с пальцем и радуешься своим выводам как ребёнок )))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976253
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И эти люди собираются лететь на Марс . Да вы же поубиваете друг друга в первую же неделю, если вам пива не давать.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976450
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, что хоть и используешь code first, а всё равно на листочке и в голове рисуешь эти квадратики. Кляты любители дизигнеров! Ещё долго из головы эту нетрушную дурь выветривать.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976464
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мде... Ну ладно, уговорили меня в соседней теме создать модель данных помимо модели предметной области, хотя сущности что там, что там почти один в один совпадают. Но что делать с enum'ами и прочими совпадающими данными? Ну перечисления-то просто абсолютно одинаковые в обеих моделях. Вывод? - Как-то расшарить энумы между моделями. Как? Выносить энумы в отдельную сборку? Ссылаться в сборке модели данных на сборку модели предметной области? Или таки дублировать энумы в обехи сборках копипастом (ну это точно не дело)?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976757
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Интересно, что хоть и используешь code first, а всё равно на листочке и в голове рисуешь эти квадратики. Кляты любители дизигнеров! Ещё долго из головы эту нетрушную дурь выветривать.

При чём тут "квадратики" и дизайнер баз данных? )) Видимо временем в мозгах границы окончательно размыло и народ перестал отделять одно от другого.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976758
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Мде... Ну ладно, уговорили меня в соседней теме создать модель данных помимо модели предметной области, хотя сущности что там, что там почти один в один совпадают. Но что делать с enum'ами и прочими совпадающими данными? Ну перечисления-то просто абсолютно одинаковые в обеих моделях. Вывод? - Как-то расшарить энумы между моделями. Как? Выносить энумы в отдельную сборку? Ссылаться в сборке модели данных на сборку модели предметной области? Или таки дублировать энумы в обехи сборках копипастом (ну это точно не дело)?

Строго говоря, моделирование бизнеса это задача для отдельных специалистов. Задача программера, реализовать модель. Используя такие штуки, как EA, можно всё это добро тупо сгенерить из модели, а дальше ручками. Если хочется совсем полной автоматизации, можно создать цепочки типа модель-база, модель-код, и как-то всё это синхронизировать, но тогда есть опасность потерять контекст и смысл, для чего тебя наняли и увлечься генераторами...
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976909
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КТы строишь систему от ООП модели, я строю от реляционной модели в БД, вот и вся разница. Мне удобнее так, тебе удобнее по другому. Мы оба правы, доказывать тут что-то глупо, оба подхода имеют право на жизнь.

Зачем ты ООП приплёл? У тебя что, в программном коде нет ООП, там эээ... мм... реляционная модель? Шта? ))))))))

Реляционная модель, это модель хранения данных, а ООП это вообще из мира программирования, там даже слово такое есть "программирование". Ты большой любитель крокодилов с ложками сравнивать.Я тебе говорю о методах проектирования, об способах описании структуры данных, об учёте физических особенностей СУБД на этапе проектирования. Причём тут программа? UML vs ER при проектировании, может так будет понятнее.

hVosttАлексей КВ работающей информационной системе обычно код модифицировать проще, чем структуру БД. Обычно код меняется чаще структуры БД. Утерянный код восстановить можно, утерянную БД восстановить невозможно.

Опять ты несёшь какую-то чушь. Ты сравниваешь важность и возможность восстановления. Весь код может хранится в БД, прикинь? И что тогда ты мне тут скажешь? И наоборот, все данные могут храниться в коде, возьмём игрушку, где нельзя засейвиться, там нет БД вообще, что тогда важность кода вообще ниже плинтуса? Пора тебе перестать употреблять. Вот поэтому я и отметил, что у меня речь идёт об [корпоративной] информационной системе, а не о каких-то программах непонятного назначения - где самое ценное, это информация, хранимая в данной системе.

hVosttАлексей КВероятно, ты работаешь не с информационными системами, отсюда у тебя другие взгляды на ситуацию.

Я дружу с логикой.
А ты занимаешься сравнением жопы с пальцем и радуешься своим выводам как ребёнок )))Я хочу пользуясь случаем порассуждать на эту тему, пусть я в чём-то не прав, ну и что? Не будь занудой. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976910
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112И эти люди собираются лететь на Марс . Да вы же поубиваете друг друга в первую же неделю, если вам пива не давать.Что значит пива не давать?! И водку тоже?!
Alexey2112Интересно, что хоть и используешь code first, а всё равно на листочке и в голове рисуешь эти квадратики. Кляты любители дизигнеров! Ещё долго из головы эту нетрушную дурь выветривать.Не надо ничего выветривать. "Новое - забытое старое" (ц)

Они сейчас побегают со своим CF, наиграются и потом скажут, что таки лучше БД делать как раньше в дизайнере, а DbContext генерировать по готовой БД.

И какое их вообще дело до наших методов проектирования? Их дело выдать на гора качественный, гибкий и расширяемый LINQ ORM. А как его мы будем применять, это уже не их не касается!
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976911
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Мде... Ну ладно, уговорили меня в соседней теме создать модель данных помимо модели предметной области, хотя сущности что там, что там почти один в один совпадают. Но что делать с enum'ами и прочими совпадающими данными? Ну перечисления-то просто абсолютно одинаковые в обеих моделях. Вывод? - Как-то расшарить энумы между моделями. Как? Выносить энумы в отдельную сборку? Ссылаться в сборке модели данных на сборку модели предметной области? Или таки дублировать энумы в обехи сборках копипастом (ну это точно не дело)?

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

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

Проснись, пора уже. :-)

hVosttИспользуя такие штуки, как EA, можно всё это добро тупо сгенерить из модели, а дальше ручками. Если хочется совсем полной автоматизации, можно создать цепочки типа модель-база, модель-код, и как-то всё это синхронизировать, но тогда есть опасность потерять контекст и смысл, для чего тебя наняли и увлечься генераторами... Что и было предложено.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976913
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Мде... Ну ладно, уговорили меня в соседней теме создать модель данных помимо модели предметной области, хотя сущности что там, что там почти один в один совпадают. Но что делать с enum'ами и прочими совпадающими данными? Ну перечисления-то просто абсолютно одинаковые в обеих моделях. Вывод? - Как-то расшарить энумы между моделями. Как? Выносить энумы в отдельную сборку? Ссылаться в сборке модели данных на сборку модели предметной области? Или таки дублировать энумы в обехи сборках копипастом (ну это точно не дело)?

Строго говоря, моделирование бизнеса это задача для отдельных специалистов. Задача программера, реализовать модель. Используя такие штуки, как EA, можно всё это добро тупо сгенерить из модели, а дальше ручками. Если хочется совсем полной автоматизации, можно создать цепочки типа модель-база, модель-код, и как-то всё это синхронизировать, но тогда есть опасность потерять контекст и смысл, для чего тебя наняли и увлечься генераторами...
Нет у нас отдельных специалистов и не будет. Ты лучше скажи, что делать с энумами.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976914
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КAlexey2112И эти люди собираются лететь на Марс . Да вы же поубиваете друг друга в первую же неделю, если вам пива не давать.Что значит пива не давать?! И водку тоже?!
Алкашня в треде! "Алло, полиция?! Тут пьяный дебошь! Убивают!"


С энумами пока решил - добавить ссыль на сборку с моделью предметной области.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976917
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112С энумами пока решил - добавить ссыль на сборку с моделью предметной области.Дались тебе эти энумы. Ну ставь рядом с "магическим числом" комментарий, где по коду не понятно, из какого классификатора код. Обычно всё понятно, даже комментарии не требуются.

Код: c#
1.
2.
3.
4.
// Накой тут комментарий или энум?
// Всегда можно заглянуть в классификатор и посмотреть, что 
// означает этот код.
var q = Db.personal.Where(p => p.PostID == 12345);
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976918
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976954
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кзы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте.
Ты опять за своё? У нас тут CF!

Кстати, не смотрел ещё, как CF генерит таблицы для энумов. Если в виде таблицы-справочника, то ОК.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38976998
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ тебе говорю о методах проектирования, об способах описании структуры данных, об учёте физических особенностей СУБД на этапе проектирования. Причём тут программа? UML vs ER при проектировании, может так будет понятнее.

При том, что бизнесу положить большой болт на способы хранения в твой любимой СУБД. Ты же не будешь объяснять пользователю про реляционные связи и что тебе надо все по таблицам раскладывать? Если ты не болен конечно.

А ты идёшь в разработке не от бизнеса, а от СУБД, что крайне глупо и не дальновидно.

Алексей КВот поэтому я и отметил, что у меня речь идёт об [корпоративной] информационной системе, а не о каких-то программах непонятного назначения - где самое ценное, это информация, хранимая в данной системе.

И что тебе даст информация, которой ты не можешь воспользоваться? Дашь бухгалтеру SQL Management Studio, типа на, херачь свою бухгалтерию?

Алексей КЯ хочу пользуясь случаем порассуждать на эту тему, пусть я в чём-то не прав, ну и что? Не будь занудой. :-)

Так давай сравнивать сравниваемое :)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977000
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кзы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте.

фу-фу-фу... какая жесть.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977119
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кзы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте.
Ты опять за своё? У нас тут CF!Ну и что теперь, выгоните меня? :-)
Alexey2112Кстати, не смотрел ещё, как CF генерит таблицы для энумов. Если в виде таблицы-справочника, то ОК.Вероятно, никак.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977128
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ тебе говорю о методах проектирования, об способах описании структуры данных, об учёте физических особенностей СУБД на этапе проектирования. Причём тут программа? UML vs ER при проектировании, может так будет понятнее.

При том, что бизнесу положить большой болт на способы хранения в твой любимой СУБД. Ты же не будешь объяснять пользователю про реляционные связи и что тебе надо все по таблицам раскладывать? Если ты не болен конечно.

А ты идёшь в разработке не от бизнеса, а от СУБД, что крайне глупо и не дальновидно.Я сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977130
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей Кзы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте.

фу-фу-фу... какая жесть. Ну строковые константы с ролями системы безопасности генерируются, и все довольны. Но я сразу сказал, что энумы - это уже перебор.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977140
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttпропущено...


При том, что бизнесу положить большой болт на способы хранения в твой любимой СУБД. Ты же не будешь объяснять пользователю про реляционные связи и что тебе надо все по таблицам раскладывать? Если ты не болен конечно.

А ты идёшь в разработке не от бизнеса, а от СУБД, что крайне глупо и не дальновидно.Я сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное.
А твоя концептуальная модель на чём написана? Если не на C#, то явно это убого. Ну что ещё может быть более удобным, чем описание модели на C#? Я имею ввиду, на нормальном языке программирования, а не эти ваши UML, хреномель и прочие базы данных. Они все какие-то ограниченные, подогнанные под свои узенькие задачки, и при расширении начинают напоминать кучу костылей, слепленных соплями - вот-вот развалятся под напором протекающих абстракций. Выбрали бы с самого начала нормальный программерский язык для моделирования таких вещей - это было бы меньшим из зол. Но зато сразу куча преимуществ - не надо городить всю эту костыльную семантическую обслугу в виде SQL и прочей хрени.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977153
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё один минус CF - миграции. На каждый чих писать тонны кода. Вот есть у меня несколько таблиц, сделанных по классам через наследование: так или так . Создал я БД. Теперь хочу поменять эти классы на композицию. Ну, тут надо ручками всё переписывать. Так мало того, что надо все модели в коде переделать, так ещё миграции прописать. Даже для трёх таблиц с полудесятком полей в каждой это будет под два экрана кода миграций. Если в БД данных нет и она небольшая, то проще будет создать новую БД.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977155
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Если в БД данных нет и она небольшая, то проще будет создать новую БД.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977159
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
Я сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное.
А твоя концептуальная модель на чём написана?Когда как. Может быть и простенькая ER-схемка карандашиком на бумаге.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977163
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Ещё один минус CF - миграции. На каждый чих писать тонны кода. Вот есть у меня несколько таблиц, сделанных по классам через наследование: так или так . Создал я БД. Теперь хочу поменять эти классы на композицию. Ну, тут надо ручками всё переписывать. Так мало того, что надо все модели в коде переделать, так ещё миграции прописать. Даже для трёх таблиц с полудесятком полей в каждой это будет под два экрана кода миграций. Если в БД данных нет и она небольшая, то проще будет создать новую БД.Раньше писали миграции на чистом SQL DDL, теперь SQL DDL обёрнут в C#. Кому как больше нравится.

А само оно не напишется, чудес не бывает. Впрочем, есть всякие сравниватели БД, выдающие SQL DDL для дельты схемы, но я им как-то не доверяю.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977165
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Если в БД данных нет, то проще будет создать новую БД.Да.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977166
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КAlexey2112пропущено...

А твоя концептуальная модель на чём написана?Когда как. Может быть и простенькая ER-схемка карандашиком на бумаге.
Как из неё сгенерить БД и ОРМ?

А вот CF могёт. C# - сила!

Алексей КAlexey2112Ещё один минус CF - миграции. На каждый чих писать тонны кода. Вот есть у меня несколько таблиц, сделанных по классам через наследование: так или так . Создал я БД. Теперь хочу поменять эти классы на композицию. Ну, тут надо ручками всё переписывать. Так мало того, что надо все модели в коде переделать, так ещё миграции прописать. Даже для трёх таблиц с полудесятком полей в каждой это будет под два экрана кода миграций. Если в БД данных нет и она небольшая, то проще будет создать новую БД.Раньше писали миграции на чистом SQL DDL, теперь SQL DDL обёрнут в C#. Кому как больше нравится.

А само оно не напишется, чудес не бывает. Впрочем, есть всякие сравниватели БД, выдающие SQL DDL для дельты схемы, но я им как-то не доверяю.
Что с данными происходит, когда вот так мигрируют? Не проще иногда создать новую чистую БД и туда данные из старой перегнать?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977172
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
Когда как. Может быть и простенькая ER-схемка карандашиком на бумаге.
Как из неё сгенерить БД и ОРМ?БД создаётся ручками, потому что концептуальная схема не содержит всех необходимых деталей для создания БД. А ORM-обёртка уже генерируется по БД.

Alexey2112А вот CF могёт. C# - сила!Верю. :-)

Alexey2112Алексей Кпропущено...
Раньше писали миграции на чистом SQL DDL, теперь SQL DDL обёрнут в C#. Кому как больше нравится.

А само оно не напишется, чудес не бывает. Впрочем, есть всякие сравниватели БД, выдающие SQL DDL для дельты схемы, но я им как-то не доверяю.
Что с данными происходит, когда вот так мигрируют? Не проще иногда создать новую чистую БД и туда данные из старой перегнать?Ну тут зависит от ситуации. Да, в каких-то случаях возможно проще отдать со следующей версией новую БД + конвертер данных в неё.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977199
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
Я сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное.
А твоя концептуальная модель на чём написана? Если не на C#, то явно это убого. Ну что ещё может быть более удобным, чем описание модели на C#? Я имею ввиду, на нормальном языке программирования, а не эти ваши UML, хреномель и прочие базы данных. Они все какие-то ограниченные, подогнанные под свои узенькие задачки, и при расширении начинают напоминать кучу костылей, слепленных соплями - вот-вот развалятся под напором протекающих абстракций. Выбрали бы с самого начала нормальный программерский язык для моделирования таких вещей - это было бы меньшим из зол. Но зато сразу куча преимуществ - не надо городить всю эту костыльную семантическую обслугу в виде SQL и прочей хрени.
не гони
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977201
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное.

Т.е. по твоей концептуальной модели наследования тупо не рассматриваются, только потому что потом ты будешь всё раскладывать по реляционным таблицам?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977211
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА ORM-обёртка уже генерируется по БД.

1. Как это потом синхронизируется и поддерживается? Я имею в виду миграции.
2. Может ли ОРМ создать схему в пустой БД?
3. Без сгенерированного класса из БД теперь ни чихнуть ни пукнуть? Поясню, с CF мне понадобился новый класс, он не содержит бизнес-данных, поэтому его очевидно нет в концептуальной модели, но содержит данные, нужные для реализации части бизнес-логики. Я создаю класс по ходу написания кода, без отрыва "от производства", сразу пишу тесты и сразу могу протестировать. Запускаю дебаг и оно СРАЗУ работает, так как миграции и все дела.

ORM это уже давным давно больше, чем обёртка над БД. По крайне мере, если говорить об EF. Поэтому генерация из БД это ущёрбный подход. Может только если на первоначальной стадии, а дальше CF.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977214
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное.

Т.е. по твоей концептуальной модели наследования тупо не рассматриваются, только потому что потом ты будешь всё раскладывать по реляционным таблицам?Наследование описывается ER отношением 1-1, не?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977221
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosAlexey2112пропущено...

А твоя концептуальная модель на чём написана? Если не на C#, то явно это убого. Ну что ещё может быть более удобным, чем описание модели на C#? Я имею ввиду, на нормальном языке программирования, а не эти ваши UML, хреномель и прочие базы данных. Они все какие-то ограниченные, подогнанные под свои узенькие задачки, и при расширении начинают напоминать кучу костылей, слепленных соплями - вот-вот развалятся под напором протекающих абстракций. Выбрали бы с самого начала нормальный программерский язык для моделирования таких вещей - это было бы меньшим из зол. Но зато сразу куча преимуществ - не надо городить всю эту костыльную семантическую обслугу в виде SQL и прочей хрени.
не гони
Пришёл главный ненавистник CF. А почему, кстати, ненавистник?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977223
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КА ORM-обёртка уже генерируется по БД.

1. Как это потом синхронизируется и поддерживается? Я имею в виду миграции.Как будто до появления EF миграции никто не делал. Рукописный SQL DDL.
hVostt2. Может ли ОРМ создать схему в пустой БД?Ну EF может это делать? У меня EF.
hVostt3. Без сгенерированного класса из БД теперь ни чихнуть ни пукнуть? Поясню, с CF мне понадобился новый класс, он не содержит бизнес-данных, поэтому его очевидно нет в концептуальной модели, но содержит данные, нужные для реализации части бизнес-логики. Я создаю класс по ходу написания кода, без отрыва "от производства", сразу пишу тесты и сразу могу протестировать. Запускаю дебаг и оно СРАЗУ работает, так как миграции и все дела.Я ничего не понял.
hVosttORM это уже давным давно больше, чем обёртка над БД. По крайне мере, если говорить об EF. Поэтому генерация из БД это ущёрбный подход. Может только если на первоначальной стадии, а дальше CF.Да пожалуйста, мне не жалко. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977226
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112ViPRosпропущено...

не гони
Пришёл главный ненавистник CF. А почему, кстати, ненавистник?Смотри шире, он ненавистник РМД и ООП. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977236
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttгенерация из БД это ущёрбный подход. Может только если на первоначальной стадии, а дальше CF.
Не на первоначальной стадии, ты хотел сказать, а на стадии дизайнера. Т. е. нужно просто создать/заиметь визуальный дизайнер таблиц. И чтобы каждое его действие сразу в миграцию отображалось - как в пакетах Офиса каждое действите логируется на VB. Тогда можно будет макросы писать для БД.

Но, если почитать блоги команды EF, редактор у них либо будет нескоро, либо вообще не. Что, конечно, не хорошо. Я вот диаграммами пока удовлетворяюсь - сделал БД на CF, отправил на сервер, смотрю диаграмму получившуюся.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977246
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Но, если почитать блоги команды EF, редактор у них либо будет нескоро, либо вообще не. Что, конечно, не хорошо.В Visual Studio есть Class Diagramm.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977419
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КAlexey2112Но, если почитать блоги команды EF, редактор у них либо будет нескоро, либо вообще не. Что, конечно, не хорошо.В Visual Studio есть Class Diagramm.
Там ключики жёлтенькие и восьмёрки на боку есть?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977444
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей ККак будто до появления EF миграции никто не делал. Рукописный SQL DDL.

Я не любитель клавадрочерства ))

Алексей КЯ ничего не понял.

Написал классы, сразу заюзал, затестил, таблицы появились в базе. Сами. Всё само, автоматизация. Гастрабайтеры, у которых просто тяма не развита, пусть дрочат дизайнеры и клаву ))

Алексей КДа пожалуйста, мне не жалко. :-)

Мне тоже не жалко, ешь кактусы ))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977485
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНаписал классы, сразу заюзал, затестил, таблицы появились в базе. Сами. Всё само, автоматизация. Гастрабайтеры, у которых просто тяма не развита, пусть дрочат дизайнеры и клаву ))

Мне тоже не жалко, ешь кактусы ))
Ввел метаданные, сразу появилось готовое приложение. Нифига делать не надо (никаких сраных "классов", форм, миграций и т.д.).
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977522
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНаписал классы, ... затестил
А как данные тестить? И зачем? Я думал, только логику тестят.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977526
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVosttНаписал классы, сразу заюзал, затестил, таблицы появились в базе. Сами. Всё само, автоматизация. Гастрабайтеры, у которых просто тяма не развита, пусть дрочат дизайнеры и клаву ))

Мне тоже не жалко, ешь кактусы ))
Ввел метаданные, сразу появилось готовое приложение. Нифига делать не надо (никаких сраных "классов", форм, миграций и т.д.).
Это универсальное приложение, которое имеет одну кодовую базу для мобилок и десктопа, имеет масштабирующийся интерфейс типа Continuity?

Про кроссплатформенность не говорю - все, кто истекают слюнями по андроидам, яблокам и вебу будут гореть в аду.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977554
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112,

Это приложение за которое платят бабки.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977612
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
В Visual Studio есть Class Diagramm.
Там ключики жёлтенькие и восьмёрки на боку есть?Нет. Это когда сомнений по генерации БД больше не будет, ключики и восьмёрки беспокоить перестанут, можно будет хоть как-то разгрести EF-ные классы.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977614
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosAlexey2112,

Это приложение за которое платят бабки.Плохо, когда работа не приносит человеку удовольствия.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977623
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ ничего не понял.

Написал классы, сразу заюзал, затестил, таблицы появились в базе. Сами. Всё само, автоматизация. Гастрабайтеры, у которых просто тяма не развита, пусть дрочат дизайнеры и клаву ))И индексы в БД создавать не надо, и планы выполнения SQL запросов смотреть не приходится. Не жизнь, а сказка. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977765
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosВвел метаданные, сразу появилось готовое приложение. Нифига делать не надо (никаких сраных "классов", форм, миграций и т.д.).

Про розовых пони на радуге ещё расскажи, очень интересно
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977767
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosAlexey2112,

Это приложение за которое платят бабки.

Это редактор баз данных, а не бизнес-приложение. Сделать генератор CRUD-приложения по любой схеме БД много ума не надо, этой "технологии" уже много лет. Называется типа "Lanch time application", детский лепет, ничего с бизнесом не имеет общего. Ну разве что вы успешно своему начальству лапшичку на уши развешиваете, тогды гуд, молодцы ребята
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977770
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИ индексы в БД создавать не надо, и планы выполнения SQL запросов смотреть не приходится. Не жизнь, а сказка. :-)

Ну неумехи-гастрабайтеры, вместо того, чтобы осилить технологии, тупо жмут на батоны и пяляться в планы запросов. А у нормальных людей метрики снимаются автоматом, покрытие тестами, оценка качества кода сонаром, собирается статистика и собираются сигналы, никому в голову не придёт от неча делать просто так пялться в планы как дундук. Есть много серьёзной работы. Я не понимаю чего ты так в эти планы упёрся. Сколько раз на дню смотришь планы? Признавайся! Может не смотришь, а что-то другое с ними делаешь ?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977775
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosAlexey2112,

Это приложение за которое платят бабки.

Это редактор баз данных, а не бизнес-приложение. Сделать генератор CRUD-приложения по любой схеме БД много ума не надо, этой "технологии" уже много лет. Называется типа "Lanch time application", детский лепет, ничего с бизнесом не имеет общего. Ну разве что вы успешно своему начальству лапшичку на уши развешиваете, тогды гуд, молодцы ребята
покажи первое(генератор) и второе(бизнес-приложение)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977790
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КViPRosAlexey2112,

Это приложение за которое платят бабки.Плохо, когда работа не приносит человеку удовольствия.
Да, я тоже что-то типа такого хотел сказать.

hVosttViPRosAlexey2112,

Это приложение за которое платят бабки.

Это редактор баз данных, а не бизнес-приложение. Сделать генератор CRUD-приложения по любой схеме БД много ума не надо, этой "технологии" уже много лет. Называется типа "Lanch time application"
LightSitch же. Индусы в МС налабали уже давно - с возможностью выбора гуя на сервелате или хтмл5. Хреново в нём только то, что на сишарпе там писать нельзя - какая-то фигня из собственного диалекта и АПИ (так мне говорили).
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38977808
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Алексей Кпропущено...
Плохо, когда работа не приносит человеку удовольствия.
Да, я тоже что-то типа такого хотел сказать.

hVosttпропущено...


Это редактор баз данных, а не бизнес-приложение. Сделать генератор CRUD-приложения по любой схеме БД много ума не надо, этой "технологии" уже много лет. Называется типа "Lanch time application"
LightSitch же. Индусы в МС налабали уже давно - с возможностью выбора гуя на сервелате или хтмл5. Хреново в нём только то, что на сишарпе там писать нельзя - какая-то фигня из собственного диалекта и АПИ (так мне говорили).
"LightSitch" - ерунда.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978184
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosпокажи первое(генератор) и второе(бизнес-приложение)

https://www.google.ru/#newwindow=1&q=generate crud application from database

Второе что тебе показать? Что пользователю до фанаря твои круды и реляционные таблицы? Что бухгалтеру положить большой и толстый на то, сколько там у тебя таблиц в БД -- 1000 или 2 и какие ты там супер-мета-генераторы применяешь, пользуешься ли бубном и танцуешь ли ты по ночам с ноутом под луной. Если они захотят эксель, они откроют ексель, а не твой эмулятор экселя, но с БД и с формами, который просто сохраняет данные по таблицам и показывает их же, им нужна бизнес-логика, сложные вычисления, которые они не хотят делать на калькуляторе, умные отчёты, workflow, события, уведомления, взаимодействие, удобный UI, с которым не надо разбираться с талмудом в руках и прочее. Им не нужно сгенерированное УГ с сотней полей и десятком вкладочек на одной форме другими словами.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978237
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosпокажи первое(генератор) и второе(бизнес-приложение)

https://www.google.ru/#newwindow=1&q=generate crud application from database

Второе что тебе показать? Что пользователю до фанаря твои круды и реляционные таблицы? Что бухгалтеру положить большой и толстый на то, сколько там у тебя таблиц в БД -- 1000 или 2 и какие ты там супер-мета-генераторы применяешь, пользуешься ли бубном и танцуешь ли ты по ночам с ноутом под луной. Если они захотят эксель, они откроют ексель, а не твой эмулятор экселя, но с БД и с формами, который просто сохраняет данные по таблицам и показывает их же, им нужна бизнес-логика, сложные вычисления, которые они не хотят делать на калькуляторе, умные отчёты, workflow, события, уведомления, взаимодействие, удобный UI, с которым не надо разбираться с талмудом в руках и прочее. Им не нужно сгенерированное УГ с сотней полей и десятком вкладочек на одной форме другими словами.
по ссылке нет никакого приложения, УГ обычное
вот, вот - им нужно приложение, которое решает (помогает решить) их задачи
а что такое приложение? -

1. модель предметной области

1.1 структурная
1.2 событийная
1.3 поведенческая

после описание модели все остальное вычислимо - пользовательский интерфейс, АПИ,..., красота и т.д. зависит от доступных компонент

ВИПРОС на основе 1.1 -1.3 генерирует приложение, который ты фиг напишешь, гарантию даю (да ты и 1.1-1.3 не в силах описать скорее всего)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978325
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парни, вы смешны. Два кулика, сидящих каждый в своем болоте и... Дальше, думаю, понятно.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978339
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПарни, вы смешны. Два кулика, сидящих каждый в своем болоте и... Дальше, думаю, понятно.

Чиво? В своём болоте лучше, чем в чужом.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978343
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos1. модель предметной области

1.1 структурная
1.2 событийная
1.3 поведенческая

после описание модели все остальное вычислимо - пользовательский интерфейс, АПИ,..., красота и т.д. зависит от доступных компонент

Ну тогда понятно, что никакие ЯП нинужны. Нужно лишь 2 компонента: дизайнер предметной области, генератор. Весь большой мир до нельзя ущёрбен, так как не допёрли до сих пор и сидят шпилят в своих убогих ЯП

ViPRosВИПРОС на основе 1.1 -1.3 генерирует приложение, который ты фиг напишешь, гарантию даю (да ты и 1.1-1.3 не в силах описать скорее всего)

По описанию, похоже на обычный редактор данных с формами.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978357
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПо описанию, похоже на обычный редактор данных с формами.
В Автоматизированной системе без редактирования данных (наполнение модели содержимым) не обойтись, на то она и автоматизированная
при этом возможны несколько сценариев по степени автоматизации
1. сильная автоматизация - система принуждает человека ввести недостающую информацию для решения регламентированных задач по мере возникновения нужды в решении таких задач
2. слабая автоматизация - человек наполняет модель нужной информацией и принуждает систему решить определенные задачи

1 от 2 отличается механизмом запуска задач по регламенту, а наполнить модель надо так и так
так что без "редактор форм" и т.д. интерфейс по HID не обойтись
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978366
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
до 1 мало кто добрался (кроме автоматических систем управления). до сих пор только и слышно - назначение ПРАВ пользователей, мало кто видел, назначение ОБЯЗАННОСТЕЙ пользователям (ВИП.Производство рассматривает людишек как ресурсы и планирует их лайфтайм в системе с учетом их системного календаря и накладывает на них обязанности)
всякие визарды и обрывочные воркфлоу на ролевых задачах встречаются а сильно регламентированных предметных областях, а в основном - высвечивается список задач, а какую и когда выполнить решает пользователь
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978370
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, следить за бензовозами онлайн, контролировать следование путевому листу и при необходимости корректировать задание водителю твоя система позволяет?
Если да, то насколько эффективно? Один оператор из диспетчерской сколько бензовозов может вести?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978376
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRos, следить за бензовозами онлайн, контролировать следование путевому листу и при необходимости корректировать задание водителю твоя система позволяет?
Если да, то насколько эффективно? Один оператор из диспетчерской сколько бензовозов может вести?
какую систему имеешь ввиду? их много у меня :)
ВИП.Производство составит для твоих бензовозов и их водителей оптимальное расписание доставки к точкам
начальное и промежуточные местоположение вносится в систему вручную (нет опроса)
прикрутить туда опросную систему (да пофиг откуда данные появятся - из OPC сервера, опроса по каким то каналам,, вручную и т.д.) можно, как только кто то за это заплатит
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978423
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAViPRos, следить за бензовозами онлайн, контролировать следование путевому листу и при необходимости корректировать задание водителю твоя система позволяет?
Если да, то насколько эффективно? Один оператор из диспетчерской сколько бензовозов может вести?
какую систему имеешь ввиду? их много у меня :)
ВИП.Производство составит для твоих бензовозов и их водителей оптимальное расписание доставки к точкам
начальное и промежуточные местоположение вносится в систему вручную (нет опроса)
прикрутить туда опросную систему (да пофиг откуда данные появятся - из OPC сервера, опроса по каким то каналам,, вручную и т.д.) можно, как только кто то за это заплатитсистем у тебя много, но не в одной нету того, о чём спросил я
и випрос не позволяет это взять и сгенерировать
Он преднозначен для своей ограниченной ниши и не стоит через него смотреть на рынок целиком
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978427
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

для онлайн сбора информации существуют куча готового решения - всякие SCADA, УСО и т.д., зачем ВИП.Производству опрашивать устройство, когда он может опрашивать OPC или прокладка на OPC вызовет ВИП.Производство
ты просто не видел ничего промышленного, хотя все время талдычишь про интеграцию, интерфейсы и другую хрень
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978431
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что блин ограничено?
покажи систему, которая по функционалу может потягаться с ВИП.Производством?
кто блин сможет разложит контракт (про автогенерацию, выполнимость, рекомендации по реструктурузации для выполнимости,...) на проекты по разработке изделия, подготовке производства, само производство (в кооперации), внешнюю и внутреннюю логистику, составить и контролировать расписания и бюджеты и т.д.?
а ты со своим телефон все лезешь, телефон - последняя миля, прикрутится как только надо будет, пока никому нах не нужно
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978432
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а рынок мой - госконцерны из сотен предприятий
и таких море в России
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978456
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, госконцерны - это и есть ограниченная ниша.

И какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978476
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает?

Как всегда, у skyANA всё сводится к долям рынка. Какой-нибудь прыщавый студент из гугла, проработаший там месяцок тоже может радостно заявлять: вот всё ваше ПО это никчёмное унылое УГ, так как наше распространено на всех континентах Этой Земли.



Но раз уж пошла такая вафля:

http://urlshpion.ru/www.vipros.ru

Vipros занимает 2 839 582 место в Россия. 'Платформа ВИПРОС.'
Приблизительная стоимость 5 734,17 руб *

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

На основе метаданных программа автоматически создает базу данных на SQL-сервере, создает визуальное представление данных в виде таблиц, деревьев и диаграмм Ганта в свободной форме, с возможностью редактирования и бесконфликтного хранения в базе данных.

Представляю, как бы меня погнали ссаными тряпками из конторы, куда бы я пришёл впаривать это поделие. И правильно сделали бы. Я бы тоже на их месте погнал бы такого деятеля. Какие ещё SQL-сервера, какое ещё безконфликтное хранение, вы что несёте господа?

Возьмём противоположный пример, Эльба:

Помогаем вести бизнес и сдавать отчётность через интернет

Напомним
Посчитаем
Отправим

У нас есть всё, что необходимо вашему бизнесу
Отчётность в налоговую
Отчётность за сотрудников
Документы, деньги, учёт товаров
Доступ с любого устройства
Простой и понятный интерфейс


Вооот! Именно то, что нужно пользователю. Просто и понятно, реальный бизнес.

Нафига ему сдались эти SQL, генераторы, метаданные, ииии.... барабанная дробь, просто чумовая штука! " с возможностью редактирования " НУ ФИГА СЕ! можно редактировать?! да ладно, вы шутите, не может быть, это ж выдумки? нет, вы всё правильно поняли, да-да, у нас можно редактировать, это ноу-хау придумали наши инженеры в секретном подземном бункере, такое есть вот только у нас))))))))))))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978514
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosВ Автоматизированной системе без редактирования данных (наполнение модели содержимым) не обойтись, на то она и автоматизированная
при этом возможны несколько сценариев по степени автоматизации
1. сильная автоматизация - система принуждает человека ввести недостающую информацию для решения регламентированных задач по мере возникновения нужды в решении таких задач
2. слабая автоматизация - человек наполняет модель нужной информацией и принуждает систему решить определенные задачи

1 от 2 отличается механизмом запуска задач по регламенту, а наполнить модель надо так и так
так что без "редактор форм" и т.д. интерфейс по HID не обойтись

Короче, у вас обыкновенный MS Access, только для веба.

Что касается форм. Правильные формы должнен разрабатывать UX дизайнер, они не должны генерироваться ни на основе никаких мета-данных, так как в результате генерации в 99,9% будет абсолютно не юзабельное номеклатурно-бюрократическое унылое тошнотворное УГ. А судя по тому, что я видел из скринов, которые ты выкладывал, я считаю, что прав. Автоматизированная система должна быть для пользователя максимальна удобна, интуитивно понятна, максимально простая. Do it simple stupid. Но сделать, чтобы было просто -- сложно. Поэтому для этого существует целый класс отдельных специалистов, способных решить эту проблему. А задача программиста -- реализовать. Ваша же система, это мозг программиста наизнанку, потому что только он способен понять, что такое "безконфликтное хранение" и "генерация метаданных", но никак не пользователь, а для бизнеса такие усложнения выливаются в огромные бессмысленные и беспощадные расходы. Потому что нужна толпа интеграторов, курсы, талмуды, регламенты и прочая шелуха, за которую кто-то должен платить. Программист об этом не думает, не ему же платить. Но такие поделки показывать людям просто банально должно быть стыдно. Я так считаю.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978515
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКороче, у вас обыкновенный MS Access, только для веба.

Тьфу, напутал, "..только для MS SQL.."
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978539
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRos, госконцерны - это и есть ограниченная ниша.

И какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает?
ВИПРОС зарабатывает много в отличии от ViPRos
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978542
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosВ Автоматизированной системе без редактирования данных (наполнение модели содержимым) не обойтись, на то она и автоматизированная
при этом возможны несколько сценариев по степени автоматизации
1. сильная автоматизация - система принуждает человека ввести недостающую информацию для решения регламентированных задач по мере возникновения нужды в решении таких задач
2. слабая автоматизация - человек наполняет модель нужной информацией и принуждает систему решить определенные задачи

1 от 2 отличается механизмом запуска задач по регламенту, а наполнить модель надо так и так
так что без "редактор форм" и т.д. интерфейс по HID не обойтись

Короче, у вас обыкновенный MS Access, только для веба.

Что касается форм. Правильные формы должнен разрабатывать UX дизайнер, они не должны генерироваться ни на основе никаких мета-данных, так как в результате генерации в 99,9% будет абсолютно не юзабельное номеклатурно-бюрократическое унылое тошнотворное УГ. А судя по тому, что я видел из скринов, которые ты выкладывал, я считаю, что прав. Автоматизированная система должна быть для пользователя максимальна удобна, интуитивно понятна, максимально простая. Do it simple stupid. Но сделать, чтобы было просто -- сложно. Поэтому для этого существует целый класс отдельных специалистов, способных решить эту проблему. А задача программиста -- реализовать. Ваша же система, это мозг программиста наизнанку, потому что только он способен понять, что такое "безконфликтное хранение" и "генерация метаданных", но никак не пользователь, а для бизнеса такие усложнения выливаются в огромные бессмысленные и беспощадные расходы. Потому что нужна толпа интеграторов, курсы, талмуды, регламенты и прочая шелуха, за которую кто-то должен платить. Программист об этом не думает, не ему же платить. Но такие поделки показывать людям просто банально должно быть стыдно. Я так считаю.
всего мира не хватит, что бы на все задачи найти прогера и UI дизайнера
для всех норм станков (стоимостью от 150000$) для почти любой детали прога генерируется автоматом
а тут на тебе - для какого то сраного бухгалтера стоимостью 50$ баксов прогеры и дизайнеры нужны
спи дальше и рисуй странички для торговли семечками :)
ВИПРОС знает Росатом, Ростех,... и этого сильно достаточно
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978559
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвсего мира не хватит, что бы на все задачи найти прогера и UI дизайнера

1. изначально, это что вообще за бред?
2. пользователь должен страдать, потому что кому-то мозгов-нехватает/тупо-денег-нет/религиозные-убеждения не позволяют нанять специалистов?
3. слава богу, конкуренция и всегда найдётся компания с адекватным вменяемым руководством, которая сделает необходимый бизнесу продукт, а недальновидные конторы пойдут по ветру. история имеет сотни тысяч таких примеров.
4. пока жива система откатов, дебильно устроенных тендеров и тупой бюрократии будут жить подобные ВИПРОС-у системы. но всё может и поменяться, или не всё, но многое.

небольшое допущение по поводу ВИПРОС-а: я-то его живьём не щупал, и может быть местами или полностью ошибаюсь на его счёт. однако из того, что я видел, не позволяет мне думать иначе.

ViPRosдля всех норм станков (стоимостью от 150000$) для почти любой детали прога генерируется автоматом
а тут на тебе - для какого то сраного бухгалтера стоимостью 50$ баксов прогеры и дизайнеры нужны

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

ViPRosспи дальше и рисуй странички для торговли семечками :)

ну-ну

ViPRosВИПРОС знает Росатом, Ростех,... и этого сильно достаточно

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

да плевать на пользователей, пользователь этот тот винтик, который еще не автоматизирован из-за как раз тех причин, которых ты перечислил (откаты, тендер непродуманные и т.д.)
человек как исполнитель и как ЛПР - говно
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978592
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosда плевать на пользователей, пользователь этот тот винтик, который еще не автоматизирован из-за как раз тех причин, которых ты перечислил (откаты, тендер непродуманные и т.д.)
человек как исполнитель и как ЛПР - говно
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978621
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAИ какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает?

Как всегда, у skyANA всё сводится к долям рынка. Какой-нибудь прыщавый студент из гугла, проработаший там месяцок тоже может радостно заявлять: вот всё ваше ПО это никчёмное унылое УГ, так как наше распространено на всех континентах Этой Земли.да нет, я не об этом...

Я о том, что рынок он большой, ПО совершенно разное, а не "им нужны умные отчеты", или ВИПРОС.

Но вы можете дальше разводить беспощадный флейм, дело ваше.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978638
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAда нет, я не об этом...

Я о том, что рынок он большой, ПО совершенно разное, а не "им нужны умные отчеты", или ВИПРОС.

Мне так и не удалось понять, что ты хотел сказать. Мир большой и всего много. Но общие требования можно сформулировать, это не так сложно. И величина мира и доли рынка тут не при чём вообще. Не знаю, почему и к чему ты их всегда приплетаешь.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978648
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAда нет, я не об этом...

Я о том, что рынок он большой, ПО совершенно разное, а не "им нужны умные отчеты", или ВИПРОС.

Мне так и не удалось понять, что ты хотел сказать. Мир большой и всего много. Но общие требования можно сформулировать, это не так сложно. И величина мира и доли рынка тут не при чём вообще. Не знаю, почему и к чему ты их всегда приплетаешь.я хотел сказать, что спор ваш не имеет смысла, т.к. вы из разных болот :) Тупой флейм у вас выходит

А про доли в нише (не всего рынка) спросил, потому как пафосно прозвучало: госкорпорации, Роснано... :)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978649
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAViPRos, госконцерны - это и есть ограниченная ниша.

И какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает?
ВИПРОС зарабатывает много в отличии от ViPRosмного это сколько в лимонах зелени?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978654
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересует чисто приход.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978656
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА про доли в нише (не всего рынка) спросил, потому как пафосно прозвучало: госкорпорации, Роснано... :)В этой нише нет никакого рынка. Попробуй приди например сюда и скажи, что SAP УГ, наша новая система "ПРТ РПА ГОРП" лучше, давайте внедрять её. Потом вместе посмеёмся. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978663
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAА про доли в нише (не всего рынка) спросил, потому как пафосно прозвучало: госкорпорации, Роснано... :)В этой нише нет никакого рынка. Попробуй приди например сюда и скажи, что SAP УГ, наша новая система "ПРТ РПА ГОРП" лучше, давайте внедрять её. Потом вместе посмеёмся. :-)мне довелось поработать в компании, где генеральный был топ менеджером в "ЮКОС"
Нормально он приходил и в "Норильский никель", и во ВНИИСТ, и в банки...
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978667
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для РЖД у меня коллега проекты делал. Там не только САП.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978669
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
В этой нише нет никакого рынка. Попробуй приди например сюда и скажи, что SAP УГ, наша новая система "ПРТ РПА ГОРП" лучше, давайте внедрять её. Потом вместе посмеёмся. :-)мне довелось поработать в компании, где генеральный был топ менеджером в "ЮКОС"
Нормально он приходил и в "Норильский никель", и во ВНИИСТ, и в банки...Ну мне не довелось контактировать с другими организациями подобного уровня. Сужу по другим глядя на эту. :-)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978678
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА для РЖД у меня коллега проекты делал. Там не только САП.И мы делаем проекты для РЖД. Но это автоматизация конкретной области, специфичной только для РЖД, реализация которой на SAP вызывает некоторые сложности.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978738
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAА для РЖД у меня коллега проекты делал. Там не только САП.И мы делаем проекты для РЖД. Но это автоматизация конкретной области, специфичной только для РЖД, реализация которой на SAP вызывает некоторые сложности.вот и я об этом :)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978744
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хъто не делал для /РЖД/, тот не настоящей русский тру программист!
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978751
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttХъто не делал для умные отчеты, тот не настоящей русский тру программист!
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978768
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИнтересует чисто приход.
ты не въезжаешь
мне пофиг сколько она приносит в зелени или дровах
не мне ж приносит
вот счас типа ЦУ поступило - подготовить коробочный продукт для продажи на сторону
и что? меня то в дележе нет :(
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978771
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, а тебе есть разница сколько юзверов вы обслуживаете?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978774
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
И мы делаем проекты для РЖД. Но это автоматизация конкретной области, специфичной только для РЖД, реализация которой на SAP вызывает некоторые сложности.вот и я об этом :)Вот! А всё остальное неспецифичное, вроде финансовых и трудовых ресурсов, покрыто SAP-ом и никого туда просто так не пустят. Другими словами, там нет никакого рынка.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978809
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
вот и я об этом :)Вот! А всё остальное неспецифичное, вроде финансовых и трудовых ресурсов, покрыто SAP-ом и никого туда просто так не пустят. Другими словами, там нет никакого рынка.
не SAPом, тем кто под видом сап разработал всякую фигню
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978843
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАлексей Кпропущено...
Вот! А всё остальное неспецифичное, вроде финансовых и трудовых ресурсов, покрыто SAP-ом и никого туда просто так не пустят. Другими словами, там нет никакого рынка.
не SAPом, тем кто под видом на базе сап разработал всякую фигню внедрил готовую конфигурациюПоправил.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978895
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosкстати, а тебе есть разница сколько юзверов вы обслуживаете?Да есть. Это на бонус влияет.
Чем больше наш рост, тем больше мой бонус.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978898
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
вот и я об этом :)Вот! А всё остальное неспецифичное, вроде финансовых и трудовых ресурсов, покрыто SAP-ом и никого туда просто так не пустят. Другими словами, там нет никакого рынка.А в количественных метриках это как? :)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978919
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosкстати, а тебе есть разница сколько юзверов вы обслуживаете?Да есть. Это на бонус влияет.
Чем больше наш рост, тем больше мой бонус.
а у нас пофиг, хоть на одном заводе внедряй, хоть на 100
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978929
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAпропущено...
Да есть. Это на бонус влияет.
Чем больше наш рост, тем больше мой бонус.
а у нас пофиг, хоть на одном заводе внедряй, хоть на 100То есть ты не знаешь, сколько внедрений в год и сколько это прихода в бабках?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978951
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТо есть ты не знаешь, сколько внедрений в год и сколько это прихода в бабках?

Думаю и фидбек пользователей не собирается. Грустно в общем.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978959
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosпропущено...

а у нас пофиг, хоть на одном заводе внедряй, хоть на 100То есть ты не знаешь, сколько внедрений в год и сколько это прихода в бабках?
блин, я даже не знаю сколько мои сотрудники зарабатывают, а ты про приход
меня это не касается, я пишу и пишу, пишу и пишу :)
а они все нанимают и нанимают, что бы переварить написанное :)
раньше было как у вас - писал, продавал, внедрял, зарабатывал - вот тогда было интересно кому, скоко и т.д.
а зачем сейчас то об этом мне замарачиваться? есть же эффективные менеджеры?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978962
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAТо есть ты не знаешь, сколько внедрений в год и сколько это прихода в бабках?

Думаю и фидбек пользователей не собирается. Грустно в общем.
почему не собирается? есть целый отдел сопровождения, обслуживает 100 предприятий
минимум ежеквартальные изменения по внедренным, а по внедрению перманентно
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978963
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего грустного нет, все тип топ
просто все это никак не отражается в моем кармане
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978968
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosничего грустного нет, все тип топ
просто все это никак не отражается в моем кармане

это тоже печально, весьма.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978971
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosничего грустного нет, все тип топ
просто все это никак не отражается в моем кармане

это тоже печально, весьма.
да, тут ты прав
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38978977
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosраньше было как у вас - писал, продавал, внедрял...я тоже только разаботкой занимаюсь, однако в курсе того, какой приход от Абрикоса в месяц
и чего ты так напрягся-то? я просто спросил: знаешь, или нет...

не знаешь и ладно, а что там у тебя было раньше и почему, мне фиолетово
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979076
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosраньше было как у вас - писал, продавал, внедрял...я тоже только разаботкой занимаюсь, однако в курсе того, какой приход от Абрикоса в месяц
Просто у тебя контора небольшая и "у них", возможно, принято делиться инфой (если это не деза, конечно). А у нас скотинки должны больше работать и меньше есть - вот всё, что от них требуется. Скотинка по определению бессловесная - чего с ней говорить, тем более о каких-то высоких штилях типа доход фирмы. Да такая инфа у нас вообще под грифом секретно идёт, бо попи..., отка... и "обкашляли по-своему в баньке за водочкой и шмарами".
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979108
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112skyANAпропущено...
я тоже только разаботкой занимаюсь, однако в курсе того, какой приход от Абрикоса в месяц
Просто у тебя контора небольшая и "у них", возможно, принято делиться инфой (если это не деза, конечно). А у нас скотинки должны больше работать и меньше есть - вот всё, что от них требуется. Скотинка по определению бессловесная - чего с ней говорить, тем более о каких-то высоких штилях типа доход фирмы. Да такая инфа у нас вообще под грифом секретно идёт, бо попи..., отка... и "обкашляли по-своему в баньке за водочкой и шмарами".Ой вот не надо тут эту херню разводить... Я про официальные данные спрашиваю.
Неофициальные я у знакомого админа в приватной беседе спрошу.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979147
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAAlexey2112пропущено...

Просто у тебя контора небольшая и "у них", возможно, принято делиться инфой (если это не деза, конечно). А у нас скотинки должны больше работать и меньше есть - вот всё, что от них требуется. Скотинка по определению бессловесная - чего с ней говорить, тем более о каких-то высоких штилях типа доход фирмы. Да такая инфа у нас вообще под грифом секретно идёт, бо попи..., отка... и "обкашляли по-своему в баньке за водочкой и шмарами".Ой вот не надо тут эту херню разводить... Я про официальные данные спрашиваю.
Неофициальные я у знакомого админа в приватной беседе спрошу.
на тебе про объемы и аппетиты
токо читай до конца, а то не увидишь про бабки
http://www.cnews.ru/news/top/index.shtml?2015/06/04/596248
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979190
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAпропущено...
Ой вот не надо тут эту херню разводить... Я про официальные данные спрашиваю.
Неофициальные я у знакомого админа в приватной беседе спрошу.
на тебе про объемы и аппетиты
токо читай до конца, а то не увидишь про бабки
http://www.cnews.ru/news/top/index.shtml?2015/06/04/596248 Мне это не интересно.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979197
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EF 6.1.

Скажите, что делать с коллекциями в POCO-классах? В этой статье ничего про это не написано, но когда создаёшь новый объект сущности, а у неё есть коллекция связанных сущностей, то добавить в эту коллекцию ничего нельзя - она null. В статье ничего не сказано, что надо её инициализировать. Зато в других статьях я нашёл целую кучу подходов:

1) инициализация коллекций в конструкторе (отрубает ленивую загрузку и чейндж трекинг в прокси-классах, которые создаёт EF по моим POCO);

2) http://stackoverflow.com/a/9912675

И т. д. Я пока выбрал второе, но дата ответа - 3 года назад. Ничего лучше пока нет?

Я думал, этот EF сам в проксях сгенерит нужные инициализации.



Вобщем, пока что могу сказать. CF сильно требователен к опытности разработчика. Если в DB first можно было налабать БД в дизайнере и забацать ORM, то тут путаешься в конвенциях и наполнении классов. Т. е. эти POCO - это с одной стороны модели, по которым будет генериться БД, а с другой, они же содержат в себе функциональность EF, к которой мы привыкли - отслеживание изменений, ленивая загрузка и т. д. И если вы не искушены в правильном написании всего этого, то рискуете потерять привычную вам по DB first функциональность - и это в лучшем случае. А в худшем - вообще всё поломать и затереть БД.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979201
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAAlexey2112пропущено...

Просто у тебя контора небольшая и "у них", возможно, принято делиться инфой (если это не деза, конечно). А у нас скотинки должны больше работать и меньше есть - вот всё, что от них требуется. Скотинка по определению бессловесная - чего с ней говорить, тем более о каких-то высоких штилях типа доход фирмы. Да такая инфа у нас вообще под грифом секретно идёт, бо попи..., отка... и "обкашляли по-своему в баньке за водочкой и шмарами".Ой вот не надо тут эту херню разводить... Я про официальные данные спрашиваю.
Неофициальные я у знакомого админа в приватной беседе спрошу.
Админы, как и бухгалтера, в доле.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979258
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

ты как считаешь, почему в разделе .NET и вообще стека МС так мало новых тем-сообщений? Пора отпусков? Наступает маздай? МС-стек настолько идеален, что помощь почти не требуется? Или это Скуль становится непопулярным у дотнетчиков (а что у них становится популярным)?

Раньше было каждый день по 10-15 новых тем. Щас иногда несколько дней ни одной новой темы или обновления старых.

Вообще, сколько ни смотрел, а Скуль самый популярный русскоязычный ресурс по общему программированию, по-моему. Всякие CodeGuru и прочие вообще полудохлые.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979259
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosпропущено...

на тебе про объемы и аппетиты
токо читай до конца, а то не увидишь про бабки
http://www.cnews.ru/news/top/index.shtml?2015/06/04/596248 Мне это не интересно.
ниче, как прижмут, так сразу заинтересуешься
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979265
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Всякие CodeGuru
CyberForum, ixbt и прочие.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979267
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAпропущено...
Мне это не интересно.
ниче, как прижмут, так сразу заинтересуешьсяахаха, испугал ежа голой жопой

я на "ЮКОС" работал.. "ЮКОС" прижали, и чё? я пошёл работать в другое место.. работы хватает..
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38979273
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAпропущено...
Мне это не интересно.
ниче, как прижмут, так сразу заинтересуешься
Как прижмут, он уедет в Америку или Европу, или фрилансить в Малую Азию или на острова.
Модератор: Орлы, давайте без оскорблений и негатива. Я и так слишком демократично гляжу на оффтоп.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38980524
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAя на "ЮКОС" работал.. "ЮКОС" прижали, и чё? я пошёл работать в другое место.. работы хватает..

юкос-шмюкос...

онуко вспомним:

skyANAПарни, вы смешны. Два кулика, сидящих каждый в своем болоте и... Дальше, думаю, понятно.

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

прям испортил весь срач всю беседу со своими маркетинговыми причиндалами.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38980528
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAя на "ЮКОС" работал.. "ЮКОС" прижали, и чё? я пошёл работать в другое место.. работы хватает..

юкос-шмюкос...

онуко вспомним:

skyANAПарни, вы смешны. Два кулика, сидящих каждый в своем болоте и... Дальше, думаю, понятно.

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

прям испортил весь срач всю беседу со своими маркетинговыми причиндалами. да отбрось ты маркетинговые причиндалы :)
Вы о разных вещах с Сахаватом трындите. О разных типах проектов.

Во многих проектах твой UX никому на фиг не упёрся. Ни людям он не нужен, ни экономически не выгоден.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38980535
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAда отбрось ты маркетинговые причиндалы :)
Вы о разных вещах с Сахаватом трындите. О разных типах проектов.

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

skyANAВо многих проектах твой UX никому на фиг не упёрся. Ни людям он не нужен, ни экономически не выгоден.

Если приложение обладает пользовательским интерфейсом и должно использоваться обычными пользователями, а узкими специалистами типа сисадминов (хотя и это тоже нифига не так, сисадмины тоже люди), то UX тут ещё как упёрся.

Хотя может я мало повидал в этой жизни, и ты бы мог слегонца помочь и дать 1-2 примера приложений или классов приложений, где UX вот реально не упёрся, лишь бы хоть как-то фурычило.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38981428
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну блин! Начал писать миграции руками - а там всё на захардкоденных строках! Ну и кой смысл тужиться во Fluent API с лямбдами и дженериками для выбора типа и его свойств, когда в миграциях всё это прахом идёт. Тут либо во всём проекте нет захардкоденных строк, либо во всём проекте только их и применять - чтобы не запутаться, где что, и не загромождать класс контекста этим многословным флюэнтом.


Вот, например, пример миграции из статьи

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
{ 
    using System; 
    using System.Data.Entity.Migrations; 
     
    public partial class AddUrl : DbMigration 
    { 
        public override void Up() 
        { 
            AddColumn("dbo.Blogs", "Url", c => c.String()); 
        } 
         
        public override void Down() 
        { 
            DropColumn("dbo.Blogs", "Url"); 
        } 
    } 
}



Имя сущности включает в себя название схемы данных - dbo. Можно без неё обойтись или нельзя? Я могу через выражения и лямбды получить строковое имя сущности - написал расширяющий метод для этого. Но как получить строку схемы данных при этом ещё, и чтобы точкой было разделено? Т. е. как вот это "dbo.Blogs" получить?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38981443
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там в XML-комментах к DropColumn написано, что имя схемы данных опционально и по умолчанию подразумевается "dbo", но я для справки спрашиваю - как получить вот такую строку "dbo.Blogs" без нагромождений самописных расширений с выражениями и рефлексией?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38981481
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Имя сущности включает в себя название схемы данных - dbo. Можно без неё обойтись или нельзя?

Можно. Пиши свои соглашения. Миграции не надо писать руками, кроме некоторых исключительных случаев. Они генерятся. Про соглашения сколько раз ещё повторить? ))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38981561
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Имя сущности включает в себя название схемы данных - dbo. Можно без неё обойтись или нельзя?

Можно. Пиши свои соглашения. Миграции не надо писать руками, кроме некоторых исключительных случаев. Они генерятся. Про соглашения сколько раз ещё повторить? ))
Про свои соглашения забыл помню. )))

А автомиграции в примерах только для простых свойств почему-то применяют. А у меня в свойствах - массивы с разными типами данных, которые сериализуются в строки (nvarchar(max)) и обратно вот так .
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38981773
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112А автомиграции в примерах только для простых свойств почему-то применяют

Ну а в БД какие поля лежат, не простые чтоли? ))

Alexey2112А у меня в свойствах - массивы с разными типами данных, которые сериализуются в строки (nvarchar(max)) и обратно вот так .

При чём тут сериализация и отражение полей таблиц в поля экземпляра класса?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982214
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМиграции не надо писать руками, кроме некоторых исключительных случаев.
Правильно будет так: миграции можно не писать руками только в самых тривиальных случаях, а именно -- для добавления объектов. В остальных случаях -- только руками.

А когда миграциями заведует ORM -- это неправильно.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982281
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112А автомиграции в примерах только для простых свойств почему-то применяют

Ну а в БД какие поля лежат, не простые чтоли? ))

Alexey2112А у меня в свойствах - массивы с разными типами данных, которые сериализуются в строки (nvarchar(max)) и обратно вот так .

При чём тут сериализация и отражение полей таблиц в поля экземпляра класса?
Ладно, для такого вот "отражения" ты используешь ручные или автомиграции?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982289
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучА когда миграциями заведует ORM -- это неправильно.

ORM не заведует миграциями, если только не включены автомиграции, что непозволительно, конечно, для крупных проектов.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982290
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Ладно, для такого вот "отражения" ты используешь ручные или автомиграции?

Я автомиграции вообще не использую
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982341
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Ладно, для такого вот "отражения" ты используешь ручные или автомиграции?

Я автомиграции вообще не использую
Т. е. ты не используешь это

hVosttМиграции не надо писать руками, кроме некоторых исключительных случаев. Они генерятся.
??

Или я не понимаю, о чём речь. У меня что-то не генерятся.

Я делал всё по этому учебнику. Т. е. создал БД в коде, запульнул её в БД. Потом добавил миграции. Мне создался скрипт миграций на шарпе, который создаёт эту БД. Потом я добавил таблицу InputData с такими вот "отражёнными" полями и связь 1-1 между этой новой таблицей и уже существующей. Написал в консоли "Add-Migration AddInputDataTable" - мне создался класс миграции с абсолютно пустыми методами Up и Down. А где код? Я что, должен руками всё заполнять? Мне обещали, что всё автоматом заполнится. Вот я и спрашиваю, где мои миграции и почему я их должен писать руками?

А, у меня стоит

AutomaticMigrationsEnabled = false;

Если я сделаю тру, то это сделает мне заполнение кода для методов Up и Down автоматически, или автомиграции это нечно другое, а не заполнялка кода?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982537
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Или я не понимаю, о чём речь. У меня что-то не генерятся.

Генерится код миграции с помощью команды

Add-Migration Migration1

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


Alexey2112А, у меня стоит

AutomaticMigrationsEnabled = false;

Автомиграции отключены, ну ))


Alexey2112Если я сделаю тру, то это сделает мне заполнение кода для методов Up и Down автоматически, или автомиграции это нечно другое, а не заполнялка кода?

Есть автомиграции, есть ручные миграции. При ручных миграциях код генерится, но ты его можешь исправить, или полностью переписать даже.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982628
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Или я не понимаю, о чём речь. У меня что-то не генерятся.

Генерится код миграции с помощью команды

Add-Migration Migration1

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

Я так и сделал, а методы оказались пустыми:

Alexey2112Потом я добавил таблицу InputData с такими вот "отражёнными" полями и связь 1-1 между этой новой таблицей и уже существующей. Написал в консоли "Add-Migration AddInputDataTable" - мне создался класс миграции с абсолютно пустыми методами Up и Down. А где код? Я что, должен руками всё заполнять? Мне обещали, что всё автоматом заполнится. Вот я и спрашиваю, где мои миграции и почему я их должен писать руками?

Миграции не смогли подхватить мои изменения?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982649
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Я так и сделал, а методы оказались пустыми:

Надо либо добавить класс InputData в своего наследника DbContext, либо создать и зарегистрировать конфигурацию класса в своём DbContext-е, можно это сделать либо ручками, либо просканировать сборку(и) на предмет конфигураций.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982654
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Миграции не смогли подхватить мои изменения?

Как ты "добавил таблицу"? Стопудово не добавил поле в свой DbContext
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982786
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueAlexey2112Миграции не смогли подхватить мои изменения?

Как ты "добавил таблицу"? Стопудово не добавил поле в свой DbContext
Ага! )))

Что-то сильно много в голове держать надо. Чтобы добавить таблицу со связями, надо:

1) добавить класс таблицы;
2) добавить в эту новую таблицу в и связанные таблицы свойства навигации и ключи;
3) добавить свойство типа DbSet<МояНоваяТаблица> в контекст;
4) если требуется, в OnModelCreating контекста добавить ручные настройки на Fluent API;
5) если требуется, добавить ручные миграции.

Ничего не забыл?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982815
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил DbSet и получил почти то же, что я и сам написал. Отличия в том, что мне сгенерилось вот что

Код: c#
1.
2.
RawData = c.Binary(),
Values_Internal = c.String(),



по такой модели

Код: c#
1.
2.
public byte[] RawData { get; set; }
public string Values_Internal { get; set; }



Почему? Я-то сам написал вот такую миграцию

Код: c#
1.
2.
RawData = c.Binary(nullable: true),
Values_Internal = c.String(nullable: true),



Почему на наллабл-тип мне не сгенерилась миграция с наллабл констрейнтом? Ведь соглашения же говорят, что наллабл в C# будет и наллабл в БД?



Пришлось ручками дописать. Короче, все эти автозаполнения методов Up и Down только для того, чтобы много кода ручками не писать. Весь этот автосгенеренный код всё равно надо пробежать и поправить то тут, то там что-нибудь. Правильно я понимаю?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982832
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Почему на наллабл-тип мне не сгенерилась миграция с наллабл констрейнтом?

c.String() разве не аналогично c.String(nullable: true) ?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982833
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Пришлось ручками дописать. Короче, все эти автозаполнения методов Up и Down только для того, чтобы много кода ручками не писать. Весь этот автосгенеренный код всё равно надо пробежать и поправить то тут, то там что-нибудь. Правильно я понимаю?

Это на твоё усмотрение. У меня всё норм получается.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982921
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

кажется, я не так понял эту штуку. Nullable в БД задаётся атрибутом Required в моделях БД в .NET (или его отсутствием). Т. е. это не то же понятие, что и nullable в .NET.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982925
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что у меня есть другое свойство в другой модели

[Required]
public string Name { get; set; }

автосгенеренная миграция для неё получилась такая

Name = c.String(nullable: false),

а в БД это выглядит так

Name
nvarchar(MAX)
allow nulls:нет галочки
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982933
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А подскажите, что сделать, чтобы вернуть в проект первую миграцию, которая БД создаёт? А то я начал руками файлы миграций из менеджера решений удалять, а потом снова пытаюсь создать миграции, а они с пустыми методами Up и Down создаются. Такое ощущение, что эти миграции где-то ещё хранятся и им мои удаления из менеджера решений не указ - в консоли пишется, что эти миграции надо сначала откатить, а потом пересоздать. А я их удалил - нечего откатывать.

Или проще новый проект создать, перекопировав все файлы со старого? )))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982976
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112,

Информация о миграциях записывается в базу данных, найди там табличку, где хранятся миграции и грохни её.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38982990
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112,

Информация о миграциях записывается в базу данных, найди там табличку, где хранятся миграции и грохни её.
Спасибо.

Так я прав насчёт этого ?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38983145
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112,

ну типа того. только можно переопределить соглашения, и обрабатывать другие атрибуты, кроме Required. в базе данных поле обозначается либо NULL, либо NOT NULL.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38984653
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдааа... А изкоробочные миграции-то не парятся по поводу захардкоденных строк и не юзают рефлексию, выражения и прочие лишние извращения. И вообще, CF как будто заточен на захардкоденные строки. Чтобы всё было по-моему, там надо всё переписать - соглашения, атрибуты, миграции и ещё много страшных слов - всё руками своими переделать... Да ну его на. У меня тоже будут захардкоденные строки. )))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38984658
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот Fluent API же нормально сделан - всё типизировано, заделегатено, залямбдено. А миграции как будто из 90-х годов.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985006
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Мдааа... А изкоробочные миграции-то не парятся по поводу захардкоденных строк и не юзают рефлексию, выражения и прочие лишние извращения. И вообще, CF как будто заточен на захардкоденные строки. Чтобы всё было по-моему, там надо всё переписать - соглашения, атрибуты, миграции и ещё много страшных слов - всё руками своими переделать... Да ну его на. У меня тоже будут захардкоденные строки. )))

Не понял в чём проблема. В строках?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985008
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Вот Fluent API же нормально сделан - всё типизировано, заделегатено, залямбдено. А миграции как будто из 90-х годов.

Ну так в этом и прелесть, выбирай, что тебе лично удобно. Удобен флюент? Флаг в руки ))
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985059
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAlexey2112Вот Fluent API же нормально сделан - всё типизировано, заделегатено, залямбдено. А миграции как будто из 90-х годов.

Ну так в этом и прелесть, выбирай, что тебе лично удобно. Удобен флюент? Флаг в руки ))
Флюент многословен. Несколько символов атрибута в модели против нескольких строк во флюэнте. Со флюэнтом количество текста, который надо напечатать, увеличивается раз так в пять-десять.

Нет, я не хочу флюэнт. Я хочу типизированный выбор с помощью IntelliSence в миграциях. Например, сейчас так

Код: c#
1.
2.
3.
4.
        public override void Down()
        {            
            DropForeignKey("dbo.InputData", "TestId", "dbo.Test");
        }



А хочу типа такого

Код: c#
1.
2.
3.
4.
        public override void Down()
        {            
            DropForeignKey(schema -> schema.InputData, model -> model.Test.TestId, schema -> schema.Test);
        }
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985063
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И да, я не хочу ничего самому писать - переписывать половину EF CF. Почему они сразу не написали всё через рефлексию и выражения с лямбдами, а сделали тупой и топорный АПИ через строки, как в 90-х или какой-нибудь Джаве, прости господи?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985069
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112А хочу типа такого

Код: c#
1.
2.
3.
4.
        public override void Down()
        {            
            DropForeignKey(schema -> schema.InputData, model -> model.Test.TestId, schema -> schema.Test);
        }




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

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

Тебе помочь, разобраться, почему тут нельзя использовать типизированные лямбда-выражения? Ни при каких обстоятельствах.

Ни. При. Каких. ВОобще. Никак. Это невозможно. Хоть призови весь Гугл, Фейсбук и Эппл на помощь. Призови Шойгу и древних индийских шаманов с галюциногенными грибами.

Нельзя.

Помочь разобраться, ну почему же строки, а не рефлексия?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985077
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112И да, я не хочу ничего самому писать - переписывать половину EF CF. Почему они сразу не написали всё через рефлексию и выражения с лямбдами, а сделали тупой и топорный АПИ через строки, как в 90-х или какой-нибудь Джаве, прости господи?



Скоро дойдёт
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985100
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПомочь разобраться, ну почему же строки, а не рефлексия?
давай
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985158
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТебе помочь, разобраться, почему тут нельзя использовать типизированные лямбда-выражения? Ни при каких обстоятельствах.

Ни. При. Каких. ВОобще. Никак. Это невозможно. Хоть призови весь Гугл, Фейсбук и Эппл на помощь. Призови Шойгу и древних индийских шаманов с галюциногенными грибами.
Гм, как сказать... Я призову трёх польских студентов и их язык Nemerle. Ну или любой язык с развитым метапрограммированием.
Макрос может на этапе компиляции слазить в БД и проверить соответствие типов. (Конечно, в рантайме код всё равно может упасть, если схема БД окажется другая). Пусть не совсем то, но близко.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985223
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikhVosttТебе помочь, разобраться, почему тут нельзя использовать типизированные лямбда-выражения? Ни при каких обстоятельствах.

Ни. При. Каких. ВОобще. Никак. Это невозможно. Хоть призови весь Гугл, Фейсбук и Эппл на помощь. Призови Шойгу и древних индийских шаманов с галюциногенными грибами.
Гм, как сказать... Я призову трёх польских студентов и их язык Nemerle. Ну или любой язык с развитым метапрограммированием.
Макрос может на этапе компиляции слазить в БД и проверить соответствие типов. (Конечно, в рантайме код всё равно может упасть, если схема БД окажется другая). Пусть не совсем то, но близко.
Какие лазания в БД в CF? У нас код главнее. У нас БД - это модель на сишарпе. Куда и зачем лазать? Что, нельзя по классам полазать и дать возможность их свойства указывать не строками, а лямбдами?

Всё, ребята, приплыли. Щас другие времена настают. Кончились времена исчадий ада - этих ваших DBA, которые, дай им волю, вообще бы все приложения прямо в СУБД и писали на своих чёртовых хранимках. Щас СУБД - робкая обслуга сишарпобояр. Кто там лезет своими грязными похотливыми ручонками в мою БД через свою сраную админку? - Убью нафиг! Теперь только через код и только для благородных донов-программеров.

hVosttПомочь разобраться, ну почему же строки, а не рефлексия?
Да. Я чёта не вдупляю в упор.

И чего ты смайлов понаставил? Какой-то подвох?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985224
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVosttПомочь разобраться, ну почему же строки, а не рефлексия?
давай

Похоже тут у многих проблемы

Вопрос на засыпку. Я удаляю сущность, которая в EF мапилась на таблицу. В миграции должна быть прописана инструкция для удаления таблицы. И, конечно, роллбэк для восстановления, при откате миграции. Чё я там должен увидеть с рефлексией?

Вопрос второй на засыпку. Я удаляю из сущности свойство, которое в EF мапилось на колонку таблицы. В миграции должна быть прописана инструкция на удаление колонки таблицы, ну и роллбэк. Чё я там должен увидеть с рефлексией? Куда моя лямбда должна указывать? На мифическую куйню из воспалённого больного воображения?

В общем, я не ожидал, что всё так плохо...
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985226
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikГм, как сказать... Я призову трёх польских студентов и их язык Nemerle. Ну или любой язык с развитым метапрограммированием.
Макрос может на этапе компиляции слазить в БД и проверить соответствие типов. (Конечно, в рантайме код всё равно может упасть, если схема БД окажется другая). Пусть не совсем то, но близко.

Речь идёт о C#, да и в C# кодогенерацию никто не отменял. Майкрософт этим балуется со времён первых вижуал студий.

Но всё равно я не понял, чем тут поможет Nemerle. У меня должен храниться код всех миграций, в разные моменты времени я должен ссылаться на то, чего ещё не существует, или то, чего уже не существует. Каким боком мне тут макросы упадут, я так и не понял.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985227
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Что, нельзя по классам полазать и дать возможность их свойства указывать не строками, а лямбдами?

Ты мыслишь удивительно плоско Почитай мои комменты выше.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985308
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosпропущено...

давай

Похоже тут у многих проблемы

Вопрос на засыпку. Я удаляю сущность, которая в EF мапилась на таблицу. В миграции должна быть прописана инструкция для удаления таблицы. И, конечно, роллбэк для восстановления, при откате миграции. Чё я там должен увидеть с рефлексией?

Вопрос второй на засыпку. Я удаляю из сущности свойство, которое в EF мапилось на колонку таблицы. В миграции должна быть прописана инструкция на удаление колонки таблицы, ну и роллбэк. Чё я там должен увидеть с рефлексией? Куда моя лямбда должна указывать? На мифическую куйню из воспалённого больного воображения?

В общем, я не ожидал, что всё так плохо...
да мне пофиг твои "миграции" и ЕФ
но ты у себя в программной модели (СФ) удаляешь "сущности и свойства", а не в БД (надеюсь БД не создана для твоей игрушки, а пользуются этой БД разные программы и т.д.), потому как тут уже сказал мальчик новый - даешь лямбды и рефлексию!!!
твоя модель СФ - это проекция реальной БД, потому сама идея каких то миграций - ущербность полная
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985311
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttУ меня должен храниться код всех миграций, в разные моменты времени я должен ссылаться на то, чего ещё не существует, или то, чего уже не существует.
Ты прав... Но ты же понимаешь, что я не могу этого вот так просто признать. Я должен обязательно что-то сказать против, обозвать, в конце концов в МСУ-стайле, ещё что-нибудь. Да и традиции требуют сопротивляться до последнего, до полного маразма. Сейчас, что-нибудь придумаю... А, вот - какого хрена вся история сущностей не хранится в строго типизированном виде? Ну, типа системы контроля версий - все когда-либо созданные сущности хранятся в ней, но мапятся только актуальные. Но при этом сохраняется возмодность указать даже лямбдами на то, что уже не существует в БД, но по-прежнему есть в коде.

Насчёт "чего ещё не существует". Так миграции по добавлению новой сущности или свойство уже существующей сущности пищутся после такого добавления. Т. е. рефлексией или выражением по этому уже можно пройтись и лямбдой это дело указать.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985376
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosно ты у себя в программной модели (СФ) удаляешь "сущности и свойства", а не в БД

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

ViPRosпотому как тут уже сказал мальчик новый - даешь лямбды и рефлексию!!!

не даёшь, я уже объяснил почему. практически на пальцах.

ViPRosтвоя модель СФ - это проекция реальной БД, потому сама идея каких то миграций - ущербность полная

ты забыл привести доводы.

т.е.

я глотнул чайку, потому миграции EF -- просто гениальная идея!
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985381
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Но при этом сохраняется возмодность указать даже лямбдами на то, что уже не существует в БД, но по-прежнему есть в коде.

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

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

Alexey2112Насчёт "чего ещё не существует". Так миграции по добавлению новой сущности или свойство уже существующей сущности пищутся после такого добавления. Т. е. рефлексией или выражением по этому уже можно пройтись и лямбдой это дело указать.

Ты оперируешь настоящим временем. А теперь представь тысячу миграций и любой выбранный момент времени, для которого существуют прошлое и будущее в контексте миграций.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985754
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМиграции не программируются, они по большей части генерируются

Что-то в этом есть... Но править их руками-то позволено всё равно. Ну и плюс, как тут говорили, генерируются только элементарные меграции, а посложнее - уже ручками. Тут-то рефакторинг и прочий треш и всплывают. Вот накопилась у тебя сотня миграций, а потом ты решил поменять название свойства, таблицы, ещё что-то. А у тебя всё захардкодено строками. Полнотекстовый поиск и замена - чреват ошибками из-за ложного срабатывания (где-то названия могут отличаться только суффиксами или префиксами). Т. е. никакой автозамены по всем файлам - только по одной замене за раз - не сильно производительнее, чем вручную искать и заменять. Делать сложные регулярки для таких вещей? - Чёта я взоржал с таких технологий в век рефакторинга на основе строго типизированного анализа кода.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985785
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Потому что у меня есть другое свойство в другой модели

[Required]
public string Name { get; set; }

автосгенеренная миграция для неё получилась такая

Name = c.String(nullable: false),

а в БД это выглядит так

Name
nvarchar(MAX)
allow nulls:нет галочки
Не, тут всё же какая-то другая инопланетная логика. Я НЕ использовал атрибут Required, а миграция всё равно сделалась с nullable:false. Что за фигня вообще тут творится с этим CF?!

Вот модель

Код: c#
1.
2.
3.
4.
        [Required]
        public string Name { get; set; }

        public double Value { get; set; }



вот миграция

Код: c#
1.
2.
                        Name = c.String(nullable: false),
                        Value = c.Double(nullable: false),



Всё же, там, похоже, и на основе Required, и на основе самого типа свойства основывается - nullable оно или нет. Т. е. атрибутом Required можно сделать не nullable всякие по природе nullable-типы (типа ссылочных типов). А для всяких чисел, которые по определению не nullable, можно сделать nullable с помощью типа Nullable<T> (int?, double? и т. д.). Вот теперь правильно?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985793
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, а кто как миграции содержит? Ну будет у вас сотня миграций - а как вы их назовёте? Я пока так делаю

201506170934203_TestTable_AddCommentaryProperty

Это нормально, или есть способ лучше? А то чувствую, что папка Migrations скоро будет состоять из гиганстского списка миграций, которые упорядочены по времени и только.

Или штука в том, что миграций В ПРИНЦИПЕ не должно быть сильно много, поэтому вроде как предполагается, что и проблем по управлению миграциями и их хранению и упорядочиванию не должно возникать?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985855
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Всё же, там, похоже, и на основе Required, и на основе самого типа свойства основывается - nullable оно или нет. Т. е. атрибутом Required можно сделать не nullable всякие по природе nullable-типы (типа ссылочных типов). А для всяких чисел, которые по определению не nullable, можно сделать nullable с помощью типа Nullable<T> (int?, double? и т. д.). Вот теперь правильно?

Да, всё верно.

Alexey2112Кстати, а кто как миграции содержит? Ну будет у вас сотня миграций - а как вы их назовёте?

В разных проектах по-разному, где-то уже устоявшаяся система есть, где-то свободная. Ну а мне лично нравится версия X_YY (или X_YY_ZZ для патчей) и всё привязано к версии, которая хорошо описана, например, в вики и содержит все тикеты, а также коммиты в рамках работы над версией/патчем.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38985960
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosно ты у себя в программной модели (СФ) удаляешь "сущности и свойства", а не в БД

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

ViPRosпотому как тут уже сказал мальчик новый - даешь лямбды и рефлексию!!!

не даёшь, я уже объяснил почему. практически на пальцах.

ViPRosтвоя модель СФ - это проекция реальной БД, потому сама идея каких то миграций - ущербность полная

ты забыл привести доводы.

т.е.

я глотнул чайку, потому миграции EF -- просто гениальная идея!

блин, одно и то же поле для какой то цели (взгляда на систему, клиента) существует, а для других нет
как может какая та прога удалить это поле? (если конечно эта прога не есть "админка" СУБД)
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38986181
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosблин, одно и то же поле для какой то цели (взгляда на систему, клиента) существует, а для других нет
как может какая та прога удалить это поле? (если конечно эта прога не есть "админка" СУБД)

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

это не прога, а слой БЛ. прога может либо юзать БЛ, либо обращаться к данным через единый REST/API. даже если я напьюсь до чёртиков, мне не придёт в голову раздавать прямой доступ к БД направо и налево.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38986191
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosблин, одно и то же поле для какой то цели (взгляда на систему, клиента) существует, а для других нет
как может какая та прога удалить это поле? (если конечно эта прога не есть "админка" СУБД)

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

это не прога, а слой БЛ. прога может либо юзать БЛ, либо обращаться к данным через единый REST/API. даже если я напьюсь до чёртиков, мне не придёт в голову раздавать прямой доступ к БД направо и налево.
ты просто офигевший мальчик, какие то слои доступа и т.д. - ахинею не неси, кроме твоих игрушек есть и нормальные системы, которые с СУБД работают через АПИ СУБД, а не через твой огрызок для доступа к БД
это надо ж блин зомбироваться до такой степени
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38986249
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosты просто офигевший мальчик, какие то слои доступа и т.д. - ахинею не неси, кроме твоих игрушек есть и нормальные системы, которые с СУБД работают через АПИ СУБД, а не через твой огрызок для доступа к БД

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

какой ещё нафиг "огрызок"? чё ты несёшь? обкурился чтоле? я даю доступ к данным, именно к тем, которые нужны клиенту, именно в том виде, как они нужны клиенту. и клиент доволен как слон. учитывая, что уже давно есть такие вещи как OData, можно АПИ СУБД своё затолкать в гудок.

ViPRosэто надо ж блин зомбироваться до такой степени

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

короче, глупочтей не гавари, да
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38986252
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosесть и нормальные системы

вот что удивительно, нормальные системы уже много лет успешно юзают REST/API, при этом клиенты не имеют ни малейшего понятия, как эти данные там храняться, SQL, noSQL или вообще в текстовых файлах разложены, всем плевать, люди бизнес делают, бабки текут рекой, все счастливы и довольны.

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

хотя, ничего против этого не имею. каждому своё. только про "нормальность" систем мне не затирай плз. чай не вчера родился, и не в одной/двух конторках просидел со студенчества. повидал всякого, уж поверь мне.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38986261
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttчай не вчера родился, и не в одной/двух конторках просидел со студенчества. повидал всякого, уж поверь мне.
Но щас-то ты на нормальном месте - всё по феншую делаете?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38986370
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Но щас-то ты на нормальном месте - всё по феншую делаете?

всегда есть над чем работать и чему поучиться, идеал недостижим
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989375
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А подскажите насчёт такой ситуации. Вот есть модель со свойством, которое надо представить в БД - коллекция. В БД коллекций нет. Предлагают отобразить коллекцию в строку:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public string Values_Internal { get; set; }

[NotMapped]
public List<double> Values
{
	get
	{
		var values =
			Values_Internal
			.Split(';')
			.Select(val => double.Parse(val))
			.ToList();

		return values;
	}

	set
	{
		Values_Internal = string.Join(";", value);
	}
}



Хочу, чтобы пользователь-программист этого класса не вызывал свойство Values_Internal - оно не должно мозолить ему глаза. Оно только запутывает. Программист не должен и ему не интересно знать, как там внутри модель устроена, зачем нужно два свойства с похожими названиями и какие костыли решают какие проблемы. Вот и хотелось бы скрыть это свойство из выдачи IntelliSense. Как сделать?

Ну и стоит ли это делать вообще? Т. е. это нормально, что пользователь класса видит кучу похожих свойств и ему надо лазить внутрь класса или читать документацию на него, чтобы разобраться, какое свойство ему нужно?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989377
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле, что написал я XML-комментарий "For internal use only." для этого свойства. А толку? Лучше бы оно изначально пользователю глаза не мозолило - выкинуть его из выдачи Интеллисенсом вообще.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989381
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл такой костыль http://www.codeproject.com/Tips/828444/Property-Mapping-in-Entity-Framework-Code-First

авторThe nonpublic properties must be mapped using the Fluent API configuration.

Т. е. только делать свойство приватным, а потом флюэнтом его мапить? Проще никак?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989385
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989421
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Хочу, чтобы пользователь-программист этого класса не вызывал свойство Values_Internal - оно не должно мозолить ему глаза. Оно только запутывает. Программист не должен и ему не интересно знать, как там внутри модель устроена, зачем нужно два свойства с похожими названиями и какие костыли решают какие проблемы. Вот и хотелось бы скрыть это свойство из выдачи IntelliSense. Как сделать?
EditorBrowsableAttribute
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989477
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikAlexey2112Хочу, чтобы пользователь-программист этого класса не вызывал свойство Values_Internal - оно не должно мозолить ему глаза. Оно только запутывает. Программист не должен и ему не интересно знать, как там внутри модель устроена, зачем нужно два свойства с похожими названиями и какие костыли решают какие проблемы. Вот и хотелось бы скрыть это свойство из выдачи IntelliSense. Как сделать?
EditorBrowsableAttribute
Во, спасибо! Это как раз то, что нужно, чтобы не заморачиться со всякими самописными конвенциями, выражениями и прочими флюэнтами.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989654
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ляя! Я уже начинаю ненавидеть этот code first! Фак зис щит!

Каскадное удаление - это так же нужно и обычно, как и первичный и внешний ключи. Почему каскадное удаление не сделать без многословного флюэнта? Почему вообще логику построения БД в code first надо размызывать не только по классам POCO, но и ещё по всяким методам всяких контекстов, самописных конвенций и прочих поведений даже в простых случаях ?!
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989658
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тэкс... Вот ситуация как по ссылке - отношение 1-1..0. Если я поставлю первичному ключу (который одновременно и внешний) в таблице-потомке атрибут Required, то каскадное удаление будет работать?

Я думал, что раз свойство обозначено как первичный ключ, то оно Required по умолчанию.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989672
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Тэкс... Вот ситуация как по ссылке - отношение 1-1..0. Если я поставлю первичному ключу (который одновременно и внешний) в таблице-потомке атрибут Required, то каскадное удаление будет работать?

Я думал, что раз свойство обозначено как первичный ключ, то оно Required по умолчанию.
Правда, после Required это будет уже не 1-1..0, а 1-1.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989699
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Alexey2112Тэкс... Вот ситуация как по ссылке - отношение 1-1..0. Если я поставлю первичному ключу (который одновременно и внешний) в таблице-потомке атрибут Required, то каскадное удаление будет работать?

Я думал, что раз свойство обозначено как первичный ключ, то оно Required по умолчанию.
Правда, после Required это будет уже не 1-1..0, а 1-1.
Вот у меня стоит в миграции nullable:false. Стоят атрибуты Key и ForeignKey. Тут написано

авторIf a foreign key on the dependent entity is not nullable, then Code First sets cascade delete on the relationship.

Ну, я сделал всё по конвенциям. А каскадного удаления нет - пишет "Конфликт инструкции DELETE с ограничением REFERENCE". Чего ему ещё надо?

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

TestId = c.Int(nullable: false),

?

Ничего не понял с этим CF. Помню только, что когда флюэнтом добавлял - каскадное удаление работало. А когда на атрибутах переделал - фигвам.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989701
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удаляю запись, кстати, так

Код: c#
1.
2.
3.
4.
                    var t = db.Tests.First();
                    db.Tests.Remove(t);

                    db.SaveChanges();
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989722
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, похоже, без флюэнта каскадное удаление не сделать.

Хвост, ты как каскадное удаление делаешь? Своё соглашение пишешь, или у тебя и так всё работает? Вон, на SO у людей не работает без флюэнта, как и у меня.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989771
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public class Test
{
    public int TestId { get; set; }

    public virtual CommonSettings CommonSettings { get; set; }
}

public class CommonSettings
{
    [Key, ForeignKey("Test")]
    public int TestId { get; set; }
    public virtual Test Test { get; set; }
}

// Configure TestId as FK for CommonSettings
modelBuilder.Entity<Test>()
	.HasOptional(e => e.CommonSettings) // Mark CommonSettings is optional for Test
	.WithRequired(ad => ad.Test) // Create inverse relationship 
	.WillCascadeOnDelete(true);



Стало (добавил атрибут Required, удалил флюэнт-вставку

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class Test
{
    public int TestId { get; set; }

    public virtual CommonSettings CommonSettings { get; set; }
}

public class CommonSettings
{
    [Key, ForeignKey("Test"), Required]
    public int TestId { get; set; }
    public virtual Test Test { get; set; }
}



Получилась миграция

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public override void Up()
{
    DropForeignKey("dbo.CommonSettings", "TestId", "dbo.Test");
    AddForeignKey("dbo.CommonSettings", "TestId", "dbo.Test", "TestId");
}

public override void Down()
{
    DropForeignKey("dbo.CommonSettings", "TestId", "dbo.Test");
    AddForeignKey("dbo.CommonSettings", "TestId", "dbo.Test", "TestId", cascadeDelete: true);
}



Эти в EF CF совсем там упоролись, чтоли?
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989772
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, без флюэнта всё через жопу даже в простых случаях.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38989962
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, так и есть. Думал, это я с миграциями напутал. Создал новую БД с упрощённой схемой - только две таблицы со связью 1-1..0. Ну и без флюэнта связь без каскадоного удаления создалась даже по такому сочетанию атрибутов на внешнем ключе

Код: c#
1.
[Key, ForeignKey("Test"), Required]



А с флюэнтом создалось как надо, вне зависимости от наличия/отсутствия атрибута Required (получается, что он тут лишний вообще).

Вобщем, для себя сделал такой вывод - без Fluent API невозможно сделать даже относительно простую базу данных в EF CF. Даже каскадное правило удаления для отношений 1-1 или 1-1..0 атрибутами и конвенциями из коробки не сделать. Так что не знаю, чего там Хвост одними изкоробочными вещами обходится. Ну либо он просто не делал БД с такими отношениями и с каскадными удаления в CF и без флюэнта.
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38990071
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, никто сюда не заходит...
...
Рейтинг: 0 / 0
Покритикуйте EF code-first
    #38990077
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey2112Эх, никто сюда не заходит...нет-нет, не переживай, мы тебя внимательно слушаем ))
...
Рейтинг: 0 / 0
245 сообщений из 245, показаны все 10 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Покритикуйте EF code-first
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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