|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
А то почитал на SO и вообще - чем дальше по времени его, code-first, появления, тем меньше критики и больше противных сладострастных восхвалений. А вот МСУ против и даже в джаву подался в том числе и из-за этого! Какие проблемы есть у CF на сегодняшний день? Или даже так. Вот появился CF в EF 4, что там изменялось за это время? Есть смысл старые версии EF использовать (у новых же, вроде, всякие требования к версиям СУБД, винды, фрейморвка и Студии, нет?) или в них CF совсем уж плохой и незрелый? Просто я тут новую БД буду делать и решил попробовать "новую" технологию. При этом буду довольно часто менять схему БД - ну, столбцы там в табличке добавлять-убирать - т. к. тема предметной области пока неясная и всё будет устаканиваться по ходу дела. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 12:13 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Например, вот сообщение 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 стал достаточно развитым, чтобы не натыкаться на ограничения через раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 12:37 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Интересное чтиво. Как анекдот почти 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 ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 14:25 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Уже можно покритиковать - в атрибутах требуются захардкоденные строками имена сущностей для FK. Как избежать? - Fluent API. Но это же так многословно, этот АПИ - вместо коротких и понятных атрибутов. Например, связь 1-1..0 на атрибутах: Код: c# 1.
а на fluent API: Код: c# 1. 2. 3. 4. 5. 6. 7.
Боремся с языком... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2015, 17:36 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Не, я понимаю, что fluent API крут, но что, предлагается всё-всё кастомное запихнуть в один метод OnModelCreating, который грозится разрастись до тысяч строк? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2015, 14:28 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Не, я понимаю, что fluent API крут, но что, предлагается всё-всё кастомное запихнуть в один метод OnModelCreating, который грозится разрастись до тысяч строк? Используй соглашения, надо избегать прямой конфигурации всеми силами. У меня обычно получается избегать почти полностью, и проблем не знаю, ни с миграциями, ни с рефакторингом, ни с переездами. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2015, 15:50 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Т. е. такое ощущение, что сначала CF был с ограничениями, покрывающими не все кейсы создания БД, по сравнению с моделированием в визуальном редакторе или с SQL, а потом стал лучше. Так вот, с какой версии EF этот CF стал достаточно развитым, чтобы не натыкаться на ограничения через раз? С поисками серебряной пилюли и священного Грааля, покрывающего абсолютно все мыслимые и немыслимые кейсы и возможности применения, это не к области инженерии, а куда-нибудь к мистикам или любителям поп... потрепаться и почесать языком попусту. Со своими весьма конкретными задачами CF справляется с лихвой. Если хочется пиджак с переподвиподвертом, это не к CF, пиши свой расовый фреймворк для своих подвыподвертов, никто же не запрещает? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2015, 15:59 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Т. е. такое ощущение, что сначала CF был с ограничениями, покрывающими не все кейсы создания БД, по сравнению с моделированием в визуальном редакторе или с SQL, а потом стал лучше. Так вот, с какой версии EF этот CF стал достаточно развитым, чтобы не натыкаться на ограничения через раз? С поисками серебряной пилюли и священного Грааля, покрывающего абсолютно все мыслимые и немыслимые кейсы и возможности применения, это не к области инженерии, а куда-нибудь к мистикам или любителям поп... потрепаться и почесать языком попусту. Со своими весьма конкретными задачами CF справляется с лихвой. Если хочется пиджак с переподвиподвертом, это не к CF, пиши свой расовый фреймворк для своих подвыподвертов, никто же не запрещает? Я критикую EF не потому, что я обижен на весь мир и вообще красноглазый ненавистник виндов , а потому, что надеюсь встретить встречный комментарий, опровергающий мои "наезды". Наверное, лучше не наездами, а более конкретными вопросами. Но наездами "прикольнее" и веселее. ))) hVosttAlexey2112Не, я понимаю, что fluent API крут, но что, предлагается всё-всё кастомное запихнуть в один метод OnModelCreating, который грозится разрастись до тысяч строк? Используй соглашения, надо избегать прямой конфигурации всеми силами. У меня обычно получается избегать почти полностью , и проблем не знаю, ни с миграциями, ни с рефакторингом, ни с переездами. Простой пример - отношение one-to-one (ну, пусть будет one-to-one or zero). Конвенций - нет. Атрибуты - захардкоденные строки с именами свойств. Выход? - Fluent API . Ты знаешь вариант лучше? Т. е. без многословности Fluent API, без закардкоденных строк, желательно соглашениями или удобными атрибутами. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 07:39 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Простой пример - отношение one-to-one (ну, пусть будет one-to-one or zero). Конвенций - нет. Атрибуты - захардкоденные строки с именами свойств. Выход? - Fluent API . Атрибутами это можно сделать. Соглашениями это можно сделать. Захардкоженные строки в атрибутах? Ну а как ты ещё имена проперти передашь, с этими претензиями уже к разработчикам C#/.NET, чего это они такие сякие, не разрешили нам экспрешены прямо в атрибутах? Ууух, нехорошие. Приходится обходится мерзкими хоббитцами строками. Если тебе понадобилось что-то совсем хитрое, но хочется без блюента, то кастомые атрибуты, кастомные соглашения. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 08:08 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Я критикую EF не потому, что я обижен на весь мир и вообще красноглазый ненавистник виндов , а потому, что надеюсь встретить встречный комментарий, опровергающий мои "наезды". Наверное, лучше не наездами, а более конкретными вопросами. Но наездами "прикольнее" и веселее. ))) Ну дак ты давай уместную критику. Думаешь EF не за что покритиковать? Ещё как есть. Но твои "наезды", пока критикой назвать нельзя. "Мне не нравится флюент" "Мне не нравятся строки" ... Это не критика, бро )) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 08:10 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Простой пример - отношение one-to-one (ну, пусть будет one-to-one or zero). Конвенций - нет. Атрибуты - захардкоденные строки с именами свойств. Выход? - Fluent API . Атрибутами это можно сделать. Соглашениями это можно сделать. Как? Покажи, пожалуйста. Я имею ввиду соглашениями. Атрибутами я и сам выше показал, как. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 08:14 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Как? Покажи, пожалуйста. Я имею ввиду соглашениями. Атрибутами я и сам выше показал, как. Соглашение + атрибут, извиняюсь что не уточнил сразу. Суть в том, что ты можешь определить какой-нибудь свой универсальный атрибут, без указание свойства с помощью строки, а в соглашении поймать его и обработать. Вот пример кастомного атрибута: https://msdn.microsoft.com/en-us/data/jj819164#attributes Писать код конкретного примера не буду, но думаю ты легко сам догадаешься, как сделать свой атрибут типа [OneToOneRelation]. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 11:09 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Как? Покажи, пожалуйста. Я имею ввиду соглашениями. Атрибутами я и сам выше показал, как. Соглашение + атрибут, извиняюсь что не уточнил сразу. Суть в том, что ты можешь определить какой-нибудь свой универсальный атрибут, без указание свойства с помощью строки, а в соглашении поймать его и обработать. Вот пример кастомного атрибута: https://msdn.microsoft.com/en-us/data/jj819164#attributes Писать код конкретного примера не буду, но думаю ты легко сам догадаешься, как сделать свой атрибут типа [OneToOneRelation]. ОК, возможно, можно передать в кастомный атрибут параметр типа bool IsOneToOne. Ну, переписать логику маппинга, ладно. Извернувшись, допустим, получится... Но ты-то сам как решаешь эту проблему (one-to-one)? Довольствуешься строками в атрибутах? Всё кастомное пихаешь в OnModelCreating через Fluent API? Ещё что-то? Вот прям щас у меня проблемы нет - мне надо небольшую БД сделать и запихать в OnModelCreating с десяток таких вот 1-1..0 мне не трудно. Но меня интересует, как люди по-взрослому работают - пишут кастомный атрибуты? Может, есть стандартный воркэраунд, который я не знаю? - Меня вот это интересует - не писать кастомное, пока точно не получу информацию, что "из коробки так сделать нельзя" . ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 12:12 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112ОК, возможно, можно передать в кастомный атрибут параметр типа bool IsOneToOne. Ну, переписать логику маппинга, ладно. Извернувшись, допустим, получится... Но ты-то сам как решаешь эту проблему (one-to-one)? Довольствуешься строками в атрибутах? Всё кастомное пихаешь в OnModelCreating через Fluent API? Ещё что-то? Что можно, я решаю стандартными способами, для таких случаев атрибуты со строковыми значениями, которые меня ничуть не пугают и к проблемам не приводило, так как изменения модели довольно редки, к этим изменениям повышенное внимание, не понимаю в чём проблема со строковыми атрибутами? Может ты вообще строками не пользуешься? Да, я люблю типизацию, но всему своё место. Прямых конфигураций избегаю, как конфигураций-классов, так и события в DbContext. Всё решалось пока. Alexey2112Вот прям щас у меня проблемы нет - мне надо небольшую БД сделать и запихать в OnModelCreating с десяток таких вот 1-1..0 мне не трудно. Но меня интересует, как люди по-взрослому работают - пишут кастомный атрибуты? Может, есть стандартный воркэраунд, который я не знаю? - Меня вот это интересует - не писать кастомное, пока точно не получу информацию, что "из коробки так сделать нельзя" . Ещё раз говорю, прямые конфигурации -- небольшое, но мелкопакостное зло. Мне удаётся всё покрыть соглашениями, по большей части стандартными, и кастомными, где нехватает. Я не пишу на каждую таблицу OnModelCreating. Если создаётся прецендент, расширяется модель соглашений, даже если она будет использоваться только для одной таблицы, пока. А из коробки много чего нельзя делать, но можно приравнять. Тыжпрограммист, или где? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 14:06 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112для связи 1-1 есть ещё вариант через complex type, но там лимитации экзистируются. Честно говоря 1-1 это чаще фейл, чем вин. Должны быть достаточные основания, чтобы впендюривать 1-1, например, для повышения производительности выборок и некоторых запросов. Зачем их навешивать вдоль и поперёк только потому, что так можно? Тем более через модель наследования 1-1 получаются вообще нативно. Давай лучше рассмотрим конкретный пример из конкретной предметной области? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 14:08 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
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. Ещё вариант, что любую композицию или наследование запихнуть просто в одну большую таблицу - т. е. тупо свести все свойства из такой иерархии классов в столбцы одной таблицы. Если блобов нет и количество свойств тоже небольшое (а у меня как раз такой вариант), то должно покатить. Как ты считаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 15:02 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
У меня, кстати, была с самого начала мысль упростить - свести все настройки в одну таблицу, а при запросах уже вытаскивать нужные свойства и раздавать их конкретным классам настроек. Соответственно и при сохранении. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 15:04 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112, Если настроек много, и они расширяемые, то наверное следует подумать о другой модели хранения, нормализовать, например, вот так: TABLE Properties (Id, Name, Group, Type) TABLE Values (Id, UserId, PropertyId, Value) Если разброс диапазонов значений большой, от чисел до безразмерного текста, для Values можно сделать иерархию в одной таблице для хранения значений разного типа в разных полях, это в EF сделать легко. Такая модель гораздо гибче и не меняется, если добавляются настройки, от количества настроек таблицы не пухнут, это и сопровождать приятнее. Самый частый кейс, где бы я применял 1:1, это вынос крупных данных (например, блобов) в отдельные таблицы, чтобы они материализовались только по запросу и для возможности вынести их, допустим, в отдельный tablespace. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 02:33 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
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.И какие несчастья нам грозят из-за этого "ужаса"? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 08:41 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КAlexey2112Уже можно покритиковать - в атрибутах требуются захардкоденные строками имена сущностей для FK.И какие несчастья нам грозят из-за этого "ужаса"? Рефакторинг. Наделал ты сто таблиц, наделал отображений, и тут надо поменять пару названий, которые встречаются 50 раз. Полнотекстовый поиск, вместо контекстного рефакторинга? hVosttЕсли разброс диапазонов значений большой, от чисел до безразмерного текста, для Values можно сделать иерархию в одной таблице для хранения значений разного типа в разных полях, это в EF сделать легко. Так, чтоли? TABLE Values (Id, UserId, PropertyId, ValueInt, ValueDouble, ValueByteArray, ValueBool, ValueString, etc.) Ты только скажи, если я в строке запишу только в одно поле из всех Value..., то другие будут занимать место в БД, или нет? Ещё раз, ребята. Нет какого-то определённого правила, как лучше моделить в БД композицию классов (т. е. когда поля класса могут иметь тип другого класса)? Т. е. нельзя сказать, что композиция - только через EAV, или через 1-1..0, или только через complex types? Каждый раз подбирается по ситуации? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 09:03 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... И какие несчастья нам грозят из-за этого "ужаса"? Рефакторинг. Наделал ты сто таблиц, наделал отображений, и тут надо поменять пару названий, которые встречаются 50 раз. Полнотекстовый поиск, вместо контекстного рефакторинга?Я за кодогенерацию контекста по БД, пусть даже это DbContext API (code-first). Но если хочется именно code-first + строгая типизация, то да - Fluent. Ничего моструозного в нём нет, благо code-complete присутствует. Alexey2112Ещё раз, ребята. Нет какого-то определённого правила, как лучше моделить в БД композицию классов (т. е. когда поля класса могут иметь тип другого класса)? Т. е. нельзя сказать, что композиция - только через EAV, или через 1-1..0, или только через complex types? Каждый раз подбирается по ситуации?Конечно, всё всегда делается в зависимости от поставленной задачи и предпочтений. Только EAV тут маленько "сбоку", его обычно применяют, когда схема данных неизвестна на этапе разработки. Мне показалось, что здесь не тот случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 09:20 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей К Тут message: сообщение message_task: сообщение-задача message_comments: сообщение-комментарий Предлагай альтернативу. На мой взгляд, тупо. Можно воспользоваться наследованием и хранить всё в одной таблице, EF такое предлагает нативно. Или воспользоваться наследованием, если религия не позволяет в одной, хранить в нескольких таблицах. EF предлагает такое нативно. Вопросы? )) Алексей КEAV - зло! Какой-то нелепый наброс. Зло это бездумное, фанатичное, следование какой-то одной идеологии. В данном случае EAV это то, что доктор прописал, так как гибко и не создаёт потенциальных таблиц с овер 100 полями. И не надо мне рассказывать только сказочки и глупые нелепости о том, как некто в компании Х работал там с 10000000000 таблицами с 1000000000 полями. Если ума нет, считай калека. Алексей КИ какие несчастья нам грозят из-за этого "ужаса"? Ну как же, "строки -- зло!" ))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 10:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Рефакторинг. Наделал ты сто таблиц, наделал отображений, и тут надо поменять пару названий, которые встречаются 50 раз. Полнотекстовый поиск, вместо контекстного рефакторинга? Даю подсказку. Именованные константы! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 10:17 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Так, чтоли? TABLE Values (Id, UserId, PropertyId, ValueInt, ValueDouble, ValueByteArray, ValueBool, ValueString, etc.) Ты только скажи, если я в строке запишу только в одно поле из всех Value..., то другие будут занимать место в БД, или нет? Нет, они все будут храниться как NULLABLE и места занимать не будут, не волнуйся. Просто не переживай об этом. Alexey2112Ещё раз, ребята. Нет какого-то определённого правила, как лучше моделить в БД композицию классов (т. е. когда поля класса могут иметь тип другого класса)? Т. е. нельзя сказать, что композиция - только через EAV, или через 1-1..0, или только через complex types? Каждый раз подбирается по ситуации? Каждый раз, для каждой отдельной задачи, в зависимости от требований, области применения и способу использования, решения могут в корне друг от друга отличаться. Вплоть даже до смены SQL на noSQL ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 10:19 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КЯ за кодогенерацию контекста по БД, пусть даже это DbContext API (code-first). Детский сад. Есть знакомый, который иного просто не приемлет. Объясняется просто, всю жизнь свою с малых пелёнок он БД хреначил в дизайнере и мозг на этой теме закостенел. Переучивать бесполезно. Кодогенерация нафиг не упала без действительно реальной в этом необходимости. Алексей КНо если хочется именно code-first + строгая типизация, то да - Fluent. Ничего моструозного в нём нет, благо code-complete присутствует. Убого. Тяжко поддерживать при разрастании БД, с определённого момента практически не поддаётся контролю. Только для для тех, у кого просто банально не хватило тямы освоить соглашения. Алексей КТолько EAV тут маленько "сбоку", его обычно применяют, когда схема данных неизвестна на этапе разработки. Мне показалось, что здесь не тот случай. EAV не панацея, но для многих случаев гибче на пару порядков, если не меньше, чем деревянный набор колонок в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 10:24 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
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 не панацея, но для многих случаев гибче на пару порядков, если не меньше, чем деревянный набор колонок в таблице.Ну мучайся, я не против. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 11:22 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Рефакторинг. Наделал ты сто таблиц, наделал отображений, и тут надо поменять пару названий, которые встречаются 50 раз. Полнотекстовый поиск, вместо контекстного рефакторинга? Даю подсказку. Именованные константы! Т. е. ты предлагаешь где-то хранить список названий сущностей в именованных константах, а потом эти константы везде пихать, где нужно строковое имя сущности? Вроде, должно работать, но похоже на такооой костыль. Отдаёт 80-ми-90-ми в программировании. hVosttДетский сад. Есть знакомый, который иного просто не приемлет. Объясняется просто, всю жизнь свою с малых пелёнок он БД хреначил в дизайнере и мозг на этой теме закостенел. Переучивать бесполезно. Кодогенерация нафиг не упала без действительно реальной в этом необходимости. А у меня так - накодил БД на сишарпе, заделал её на сервер и потом смотрю в дизайнере - как ключики жёлтые расставлены и какие правила обновления-удаления установились. Проверяю, так сказать. Ну нет пока доверия этому code first. Точнее, нет доверия себе, что всё правильно в этом code first сделал. hVosttУбого. Тяжко поддерживать при разрастании БД, с определённого момента практически не поддаётся контролю. Только для для тех, у кого просто банально не хватило тямы освоить соглашения. Просто побольше вложенных region/endregion делаешь в OnModelCreating - это для такой-то таблицы, это для другой, а вот здесь у нас отключение PluralizingTableNameConvention, и так далее. Можно ещё иерархию классов-функций сделать, которые потом вызывать в OnModelCreating. Короче, рахитектура. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 11:22 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КСмешались в кучу люди, кони... Я про таблицы в БД, связанные отношением 1-1, ненужные, как ты утверждал выше. Про способы маппинга объектов на эти таблицы с помощью EF я ни слова. Может ты прочитаешь ещё раз? Я говорил, что мапить можно как в 1:1, так и в одну таблицу. 1:1 -- это не единственное решение задачи. В твоём случае профита даже муха не нарыдала, просто ХЗ пойми зачем этот мусор в БД. Ради какой великой цели, не понятно. Алексей КНикогда ещё не было проблем от количества таблиц или количества полей в них. Их должно быть столько, сколько того требует предметная область. При статичной структуре данных EAV не упёрлось. Речь идёт о наборах свойств, их много, они могут группироваться. Мало ли что там ещё понадобится. EAV тут упёрлось очень даже. Давай без EAV, дай мне на каждое свойство свой доступ для каждого пользователя, настраиваемый естественно в какой-нибудь админке. Съел? В EAV такое лепится и много чего другого проще пареной репы. Нахрена себе жизнь усложнять сразу же? Ради какой великой цели? Алексей КМне удобнее создавать таблицы в дизайнере, чем описывать их в тексте C#. Просто ты работаешь один, давай начистоту. Алексей ККодогенерация контекста по БД по сути те же соглашения, только в другую сторону. Это херня какая-то для поддержки кучки старпёров, ничего кроме дизайнера в этой жизни не осиливших ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 11:43 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Т. е. ты предлагаешь где-то хранить список названий сущностей в именованных константах, а потом эти константы везде пихать, где нужно строковое имя сущности? Вроде, должно работать, но похоже на такооой костыль. Отдаёт 80-ми-90-ми в программировании. По сути всё программирование из этого состоит. А на дворе уже 2015 Alexey2112А у меня так - накодил БД на сишарпе, заделал её на сервер и потом смотрю в дизайнере - как ключики жёлтые расставлены и какие правила обновления-удаления установились. Проверяю, так сказать. Ну нет пока доверия этому code first. Точнее, нет доверия себе, что всё правильно в этом code first сделал. По мне, так code-first это полный контроль. Как на этапе компиляции, так и всякие чекинги, от Sonar Qube, до StyleCop, + ещё можно своих на рослине налепить. Плюс юнит-тестирование, плюс, плюс, плюс... Много их, и гибко. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 11:46 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
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Алексей ККодогенерация контекста по БД по сути те же соглашения, только в другую сторону. Это херня какая-то для поддержки кучки старпёров, ничего кроме дизайнера в этой жизни не осиливших Объективненько. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 12:08 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttРечь идёт о наборах свойств, их много, они могут группироваться. Мало ли что там ещё понадобится. EAV тут упёрлось очень даже. Всё так - и состав свойств может поменяться, и тип уже существующих - мы только разрабатываем предметную область. Но вот с этим EAV в EF какая-то хрень - надо городить подобие репозитория (даже если тебе репозиторий вообще не сдался) или просто некий код, который бы объект из модели предметной области раскладывал на таблицы EAV и обратно. Иногда советуют обойтись просто разрежённой таблицей (вот как ты советовал с кучей ValueXXX разных типов), а не EAV. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 12:17 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
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 . ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 12:54 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КТы утверждал, что 1-1 в БД зло. Разумеется, это не единственное решение, но оно имеет право на жизнь не менее, чем все остальные. Молоток не зло, но если применять его только по той причине, что он у тебя есть, то зло безусловно. Алексей КТаки без 1-1 в БД там станет очень неудобно. Великая цель, иметь вложения одновременно у задач и комментариев, там описана. Но ты как всегда не читаешь, но осуждаешь. Я всё читал и когда-то даже пытался чему-то научиться разбирая твой проект )) Твоя задача легко укладывается в 1 таблицу, возможность выбрать только инфу для для задач или комментариев не теряется, но есть возможность легко получить все вложения одним запросом, не ковыряясь в схеме БД, что выяснить, да сколько ж всего их там. Легко расширяемая, без замусоривания БД лишними таблицами. Причин 1-1 не увидел ни единой, кроме, наверное, религиозной. А религиозные причины не обсуждаются )) Алексей КЭто пока не начнётся использование этих свойств в прикладном коде. А сделать форму их редактирования, аля PropertyGrid, с EAV конечно удобнее, если повезёт конечно - если типы значений свойств будут одинаковыми. Какие проблемы использования в прикладном коде? Я одним запросом получил набор свойств, сгруппированных как надо, могу их отсортировать по какому-то признаку, могу скрыть отдельные свойства по другому признаку, по третьему признаку могу разрешить редактировать пользователю или нет.. Признаки -- это то, чего у колонок тупо нет и не будет никогда. Алексей КНу делай методы в сервисах, выдающие свойства по одному или группами, давай права на эти методы. Замути кодогенерацию, если это поможет. Чтобы замутить кодогенерацию, надо написать код. Усложнить жизнь себе и людям, которым это придётся сопровождать. Задокументировать и вносить в документацию изменения при добавлении очередного свойства. Ты любитель граблей и кактусов? Охотно верю )) Алексей КЗнаю я эту печальную историю: только CRM-щики 35+ LVL работают группами, нам до них ещё далеко. Я к тому, что ты в рассуждениях никогда не учитываешь ни работу в команде, ни возможность сопровождения другим людям, ни прикладных программеров, которые захотят заюзать твой код, ни просто тот факт, что ты не вечен, тебе всё может надоесть, а там по твоей идеологии, хоть трава не расти. Мне-то всё равно, но принципиально я не могу согласиться с подходами, уместными только для гастрабайтера-одиночки Алексей КОбъективненько. :-) Это я про любителей дизайнеров всяких. И обычно, знающих не больше одного дизайнера, ну максимум двух. Любой шаг в сторону вызывает у таких кодеров паническую реакцию. Зная это, MS замутила database first, чтобы эти люди как бы и в тренде оставались, и не отбирать у них игрушку ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 17:25 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Всё так - и состав свойств может поменяться, и тип уже существующих - мы только разрабатываем предметную область. Но вот с этим EAV в EF какая-то хрень - надо городить подобие репозитория (даже если тебе репозиторий вообще не сдался) или просто некий код, который бы объект из модели предметной области раскладывал на таблицы EAV и обратно. Иногда советуют обойтись просто разрежённой таблицей (вот как ты советовал с кучей ValueXXX разных типов), а не EAV. Компромис всегда можно найти. EAV это лишь способ хранения, но не употребления. Ты можешь легко сделать маппер коллекции в твою бизнес-модель. И даже генерацию данных-пропертей в БД по бизнес-моделям. Это уже как душа лежит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 17:27 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КТаки без 1-1 в БД там станет очень неудобно. Великая цель, иметь вложения одновременно у задач и комментариев, там описана. Но ты как всегда не читаешь, но осуждаешь. Я всё читал и когда-то даже пытался чему-то научиться разбирая твой проект )) Твоя задача легко укладывается в 1 таблицу, возможность выбрать только инфу для для задач или комментариев не теряется, но есть возможность легко получить все вложения одним запросом, не ковыряясь в схеме БД, что выяснить, да сколько ж всего их там. Легко расширяемая, без замусоривания БД лишними таблицами. Причин 1-1 не увидел ни единой, кроме, наверное, религиозной. А религиозные причины не обсуждаются ))Но это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности. hVosttАлексей КЭто пока не начнётся использование этих свойств в прикладном коде. А сделать форму их редактирования, аля PropertyGrid, с EAV конечно удобнее, если повезёт конечно - если типы значений свойств будут одинаковыми. Какие проблемы использования в прикладном коде? Я одним запросом получил набор свойств, сгруппированных как надо, могу их отсортировать по какому-то признаку, могу скрыть отдельные свойства по другому признаку, по третьему признаку могу разрешить редактировать пользователю или нет.. Признаки -- это то, чего у колонок тупо нет и не будет никогда.Ну эти свойства вероятно предназначены для хранения настроек системы, которые будут участвовать в прикладной логике: Код: c# 1.
vs Код: c# 1. 2. 3.
Нам такого счастья не надо. А расширить существующие метаданные, живущие в syscolumns и т. п., это работы на 5 минут... hVosttАлексей КНу делай методы в сервисах, выдающие свойства по одному или группами, давай права на эти методы. Замути кодогенерацию, если это поможет. Чтобы замутить кодогенерацию, надо написать код. Усложнить жизнь себе и людям, которым это придётся сопровождать. Задокументировать и вносить в документацию изменения при добавлении очередного свойства. Ты любитель граблей и кактусов? Охотно верю ))Само ничего не делается, да... hVosttАлексей КЗнаю я эту печальную историю: только CRM-щики 35+ LVL работают группами, нам до них ещё далеко. Я к тому, что ты в рассуждениях никогда не учитываешь ни работу в команде, ни возможность сопровождения другим людям, ни прикладных программеров, которые захотят заюзать твой код, ни просто тот факт, что ты не вечен, тебе всё может надоесть, а там по твоей идеологии, хоть трава не расти. Мне-то всё равно, но принципиально я не могу согласиться с подходами, уместными только для гастрабайтера-одиночки Опять пустые слова. Приводи конкретные примеры. hVosttАлексей КОбъективненько. :-) Это я про любителей дизайнеров всяких. И обычно, знающих не больше одного дизайнера, ну максимум двух. Любой шаг в сторону вызывает у таких кодеров паническую реакцию. Зная это, MS замутила database first, чтобы эти люди как бы и в тренде оставались, и не отбирать у них игрушку Я не представляю, как можно делать большую и сложную БД без дизайнера. Пользуемся родным дизайнером из MSSQL Management Studio, он устраивает более чем. Сторонние дизайнеры вроде ERWin не предлагать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 05:25 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КНо это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть 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), поэтому достаточно двух или вообще одной таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 07:08 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112F*ckYou EAV (string) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 07:11 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
мне вот интересно. Вот тут народ до хрипоты спорит и высказывает прямо противоположные мнения. При этом все там вроде ответственные лица, разработчики и всё такое. Т. е. каждый сделал по-своему, не один раз и у каждого всё работает. Может, где-то есть слабые места (опять же, у каждого и у любого подхода), но у них всё работает - с работы их не гонят, штрафы миллионные за потери бизнеса не впаривают, по судам не гоняют. Какой из этого можно сделать вывод? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 07:27 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Какой из этого можно сделать вывод? Что все они - ограниченные балбесы, которые только в своей узкой области и преуспели, и не имеют широкого опыта. Всяк кулик своё болото хвалит. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 07:28 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей КНо это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности. Но такой подход не верен в случае, когда предметная модель пока только устаканивается, постоянно добавляются-убираются-перемещаются-переименовываются свойства объектов (столбцы таблиц) и т. д. Да? Т. е., по сути схема БД в этой части ещё не устоялась и потом, скорее всего, мы заменим её на более устойчивую. Тогда и сделаем нормальные сущности со связями. А пока мне выгоднее запихать всё в одну таблицуЕсли предметная область недостаточно формализована до начала написания программы, то проблемы будут при любом подходе. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 07:34 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Если сделать так, то в чём могут быть трудности в краткосрочной перспективе? Ну, с учётом того, что потом мы всё переделаем (и перегоним данные со старой БД в новую, конечно), когда предметная область у нас устоится.Этого скорее всего не произойдёт. Принцип "работает да и ладно" достаточно силён. Alexey2112Я имею ввиду, одной таблицы, вроде, вполне достаточно. Я теперь не понимаю, зачем городить связь из двух, как Хвост раньше предложил, или вообще из трёх, как в классическом EAV... А, понял. В классическом EAV формируются сущности, а у меня сущность одна (Settings), поэтому достаточно двух или вообще одной таблицы.Сущность Settings не одна, к ней в дополнение идёт некий репозитарий, отвечающий за работу с конкретными свойствами. Не понимаю, какие проблемы могут возникнуть при изменении структуры таблиц в процессе уточнения постановки задачи. Чем это сложнее модификации логики репозитария, который идёт в нагрузку к таблице Settings. Дело ваше конечно, просто мысли вслух... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 07:41 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КНо это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности. Ты как будто в танке сидишь. Сколько тебе ещё раз сказать, что EF прекрасно работает с наследованием как разложенных в таблицах 1:1, так в одной? С точки зрения программиста разница вообще не будет заметна, но будет заметна, когда данных станет много и выбор программиста был неверен. С 1:1 проблем больше, по опыту, но иногда это лучший выбор. Алексей КНам такого счастья не надо. А расширить существующие метаданные, живущие в syscolumns и т. п., это работы на 5 минут... Т.е. для каждой колонки ты таки создашь отдельную запись метаданных в отдельной таблице? Просто офигенное решение ))))) Работы на 5 минут... Спасибо, посмеялся. Алексей КЯ не представляю, как можно делать большую и сложную БД без дизайнера. Пользуемся родным дизайнером из MSSQL Management Studio, он устраивает более чем. Сторонние дизайнеры вроде ERWin не предлагать. Ты похоже просто тупо не видишь разницы между моделями предметной области, данных и схемой данных в БД. Для схемы данных дизайнер нафиг не упёрся. Дизайнер это не плохо вовсе, но код важнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 09:34 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КСущность Settings не одна, к ней в дополнение идёт некий репозитарий, отвечающий за работу с конкретными свойствами. Идиотизм высшей пробы )) Пятое колесо для велосипеда, которое надо возить на своём горбу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 09:35 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112мне вот интересно. Вот тут народ до хрипоты спорит и высказывает прямо противоположные мнения. При этом все там вроде ответственные лица, разработчики и всё такое. Т. е. каждый сделал по-своему, не один раз и у каждого всё работает. Может, где-то есть слабые места (опять же, у каждого и у любого подхода), но у них всё работает - с работы их не гонят, штрафы миллионные за потери бизнеса не впаривают, по судам не гоняют. Какой из этого можно сделать вывод? Это всё религия )) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 09:36 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КНо это твоё мнение, не больше и не меньше. Я раньше тоже был за денормализованные таблицы с целью упрощения запросов. Теперь есть EF с ассоциациями, поэтому проблема обилия join-ов не стоит, поэтому пусть уж лучше БД будет в нормализованном виде, без избыточностей и лишних необязательных полей с хитрой логикой их обязательности. Ты как будто в танке сидишь. Сколько тебе ещё раз сказать, что EF прекрасно работает с наследованием как разложенных в таблицах 1:1, так в одной? С точки зрения программиста разница вообще не будет заметна, но будет заметна, когда данных станет много и выбор программиста был неверен. С 1:1 проблем больше, по опыту, но иногда это лучший выбор.Я знаю, что это можно решить наследованием, но мне больше нравится это решать ассоциациями. Я хочу работать с классами, один-в-один сопоставленными с таблицами в БД и связанными между собой ассоциациями. Тут и без таких подвыподвертов бардака в предметной области хватает, так мне ещё и разбираться, какой группе таблиц соответствует какой класс. Один класс-одна таблица - это мой выбор и не тебе его осуждать. Но можешь не согласиться, твоё право. hVosttАлексей КНам такого счастья не надо. А расширить существующие метаданные, живущие в syscolumns и т. п., это работы на 5 минут... Т.е. для каждой колонки ты таки создашь отдельную запись метаданных в отдельной таблице? Просто офигенное решение ))))) Работы на 5 минут... Спасибо, посмеялся.Что не так? hVosttАлексей КЯ не представляю, как можно делать большую и сложную БД без дизайнера. Пользуемся родным дизайнером из MSSQL Management Studio, он устраивает более чем. Сторонние дизайнеры вроде ERWin не предлагать. Ты похоже просто тупо не видишь разницы между моделями предметной области, данных и схемой данных в БД. Для схемы данных дизайнер нафиг не упёрся. Дизайнер это не плохо вовсе, но код важнее .БД важнее кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 09:59 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КНе понимаю, какие проблемы могут возникнуть при изменении структуры таблиц в процессе уточнения постановки задачи. Чем это сложнее модификации логики репозитария, который идёт в нагрузку к таблице Settings. Таблицы будут наполняться данными. Данные перегонять задолбаешься, накосячишь чего-нибудь. А данные будут, возможно, уже не тестовые. Да и вообще, этот сервис у нас будет на постоянной доработке, поэтому придётся смириться, что в БД будут нетестовые данные ещё до завершения разработки этой БД. Ну и с возможной потерей данных придётся смириться. Один плюс - потеря данных будет нашей проблемой, а не проблемой клиентов, т. к. сервис для клиентов просто выдаёт разовый результат, а все настройки, результаты и их сохранение - наша статистика и забота о её сохранении (по ней будет дорабаться модель предметной области). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 10:32 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КhVosttДизайнер это не плохо вовсе, но код важнее .БД важнее кода. БД это и есть код. Ну, когда code first. T-SQL нафиг не нужен вообще - потому что я его не знаю и знать не хочу костыль. Вот если бы сразу .NET в этот SQL Server вогнать. Вот, code first - шаг навстречу этому. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 10:36 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... БД важнее кода. БД это и есть код. Ну, когда code first.Я уже выше говорил, что я за DbContext API, но против code-first как метода разработки. Alexey2112T-SQL нафиг не нужен вообще - потому что я его не знаю и знать не хочу костыль.Не соглашусь. EF - это продвинутый генератор SQL, не больше и не меньше. Если нет чёткого понимания, какой будет план выполнения у сгенерированного SQL - это путь в никуда. Alexey2112Вот если бы сразу .NET в этот SQL Server вогнать. Вот, code first - шаг навстречу этому.И изменить модель данных в MSSQL с реляционной на какую-нибудь другую? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 10:48 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КЯ знаю, что это можно решить наследованием, но мне больше нравится это решать ассоциациями. Я хочу работать с классами, один-в-один сопоставленными с таблицами в БД и связанными между собой ассоциациями. Тут и без таких подвыподвертов бардака в предметной области хватает, так мне ещё и разбираться, какой группе таблиц соответствует какой класс. Где тут бардак? У меня есть Message и есть UserMessage, GroupMessage, ProjectMessage. Почему это должны быть совершенно разные таблицы, если суть у них одна, основной набор данных один, базовая логика одинаковая, основные контролы/шаблоны UI одни? С какого перепугу? Или предлагаешь это всё нагенерить? С логикой у меня всё в порядке, а у тебя? )) Алексей КОдин класс-одна таблица - это мой выбор и не тебе его осуждать. Но можешь не согласиться, твоё право. Твой выбор я не осуждаю, если ты его себе выбрал и никому не советуешь, по крайне мере без вменяемой аргументации. Алексей КЧто не так? Бардак, разброд и шатания, усложнение без видимых причин, кроме разве что небольшой степени упоротости ) Алексей КБД важнее кода. А крокодил зеленее ширины слона. Рубль слаще бутерброда. Глупые сравнения меня не интересуют, и код и БД одинаково важны, т.к. юзер останется с носом, что без одного, что без другого. Или дизайнер и БД это для тебя одно и тоже? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 10:59 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КЕсли нет чёткого понимания, какой будет план выполнения у сгенерированного SQL - это путь в никуда. И как же ты живёшь с DbContext? На все LINQ запросы планы посмотрел? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 11:01 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КЯ знаю, что это можно решить наследованием, но мне больше нравится это решать ассоциациями. Я хочу работать с классами, один-в-один сопоставленными с таблицами в БД и связанными между собой ассоциациями. Тут и без таких подвыподвертов бардака в предметной области хватает, так мне ещё и разбираться, какой группе таблиц соответствует какой класс. Где тут бардак? У меня есть Message и есть UserMessage, GroupMessage, ProjectMessage. Почему это должны быть совершенно разные таблицы, если суть у них одна, основной набор данных один, базовая логика одинаковая, основные контролы/шаблоны UI одни? С какого перепугу? Или предлагаешь это всё нагенерить? С логикой у меня всё в порядке, а у тебя? ))Ты строишь систему от ООП модели, я строю от реляционной модели в БД, вот и вся разница. Мне удобнее так, тебе удобнее по другому. Мы оба правы, доказывать тут что-то глупо, оба подхода имеют право на жизнь. hVosttАлексей КОдин класс-одна таблица - это мой выбор и не тебе его осуждать. Но можешь не согласиться, твоё право. Твой выбор я не осуждаю, если ты его себе выбрал и никому не советуешь, по крайне мере без вменяемой аргументации.Я никому ничего не советую, я делюсь своим мнением. Уровень моей аргументации зависит от наличия свободного времени и настроения. А вот критика при отсутствующей аргументации, как у тебя, это скучно и неинтересно. hVosttАлексей КЧто не так? Бардак, разброд и шатания, усложнение без видимых причин, кроме разве что небольшой степени упоротости )Спасибо за ценную информацию, которая наверняка пригодится читателям форума! hVosttАлексей КБД важнее кода. А крокодил зеленее ширины слона. Рубль слаще бутерброда. Глупые сравнения меня не интересуют, и код и БД одинаково важны, т.к. юзер останется с носом, что без одного, что без другого. Или дизайнер и БД это для тебя одно и тоже? )))В работающей информационной системе обычно код модифицировать проще, чем структуру БД. Обычно код меняется чаще структуры БД. Утерянный код восстановить можно, утерянную БД восстановить невозможно. Вероятно, ты работаешь не с информационными системами, отсюда у тебя другие взгляды на ситуацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 11:20 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КЕсли нет чёткого понимания, какой будет план выполнения у сгенерированного SQL - это путь в никуда. И как же ты живёшь с DbContext? На все LINQ запросы планы посмотрел?На все, имеющие проблемную статистику выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 11:21 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КЯ знаю, что это можно решить наследованием, но мне больше нравится это решать ассоциациями. Я хочу работать с классами, один-в-один сопоставленными с таблицами в БД и связанными между собой ассоциациями. Тут и без таких подвыподвертов бардака в предметной области хватает, так мне ещё и разбираться, какой группе таблиц соответствует какой класс. Где тут бардак? У меня есть Message и есть UserMessage, GroupMessage, ProjectMessage. Почему это должны быть совершенно разные таблицы, если суть у них одна, основной набор данных один, базовая логика одинаковая, основные контролы/шаблоны UI одни? С какого перепугу? Или предлагаешь это всё нагенерить? С логикой у меня всё в порядке, а у тебя? ))Основной набор данных один, но есть и специфичный набор данных, разный для каждого класса. Теперь включаем логику, с которой у тебя всё в порядке. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 11:42 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей К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 одни? С какого перепугу? Или предлагаешь это всё нагенерить? С логикой у меня всё в порядке, а у тебя? )) Может, ему удобнее иметь готовые сущности в БД по аналогии с сущностями в модели предметной области, а не выделять эти сущности после запроса в каком-нибудь репозитории. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 12:07 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... И изменить модель данных в MSSQL с реляционной на какую-нибудь другую? А реляционная не эмулируется на .NET? Вроде, даже с избытком. В крайнем случае можно расширение языка или библиотечку ввести. Главное, что вообще нафиг убрать всё это многообразие языков, которые все по сути делают одно и то же. Приходишь на работу - надо знать туеву кучу всякой дряни, помимо C#. А ты такой им - я знаю C#, EF Code First, WiX#, SharpDX, LINQ вместо SQL и т. д. - Нет, вы нам не подходите. Кстати, LINQ вместо SQL - тоже нужно в массы. Тогда и маппинги с ОРМами не понадобятся - всё будет нативно сразу. Ну есть же простейший пример в реляционной модели - *-*. Моделирование этого через промежуточную таблицу - костыль. А в ООП - легко и непринуждённо через коллекции. А теперь костыли в обратную сторону (если найдёте)?Ну можно же сериализовать объекты в XML и хранить в отдельных файлах. Зачем нам вообще MSSQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 12:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КAlexey2112пропущено... А реляционная не эмулируется на .NET? Вроде, даже с избытком. В крайнем случае можно расширение языка или библиотечку ввести. Главное, что вообще нафиг убрать всё это многообразие языков, которые все по сути делают одно и то же. Приходишь на работу - надо знать туеву кучу всякой дряни, помимо C#. А ты такой им - я знаю C#, EF Code First, WiX#, SharpDX, LINQ вместо SQL и т. д. - Нет, вы нам не подходите. Кстати, LINQ вместо SQL - тоже нужно в массы. Тогда и маппинги с ОРМами не понадобятся - всё будет нативно сразу. Ну есть же простейший пример в реляционной модели - *-*. Моделирование этого через промежуточную таблицу - костыль. А в ООП - легко и непринуждённо через коллекции. А теперь костыли в обратную сторону (если найдёте)?Ну можно же сериализовать объекты в XML и хранить в отдельных файлах. Зачем нам вообще MSSQL? А кто его знает, как MSSQL хранит объекты у себя внутри. Может, и в XML иногда. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 12:42 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... Ну можно же сериализовать объекты в XML и хранить в отдельных файлах. Зачем нам вообще MSSQL? А кто его знает, как MSSQL хранит объекты у себя внутри. Может, и в XML иногда.Мне, по большому счёту, всё равно, как он там хранит данные. Мне важны его возможности по их обработке, потому что очевидно, что все данные из БД на клиента я забрать не могу из-за их количества. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 12:49 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КТы строишь систему от ООП модели, я строю от реляционной модели в БД, вот и вся разница. Мне удобнее так, тебе удобнее по другому. Мы оба правы, доказывать тут что-то глупо, оба подхода имеют право на жизнь. Зачем ты ООП приплёл? У тебя что, в программном коде нет ООП, там эээ... мм... реляционная модель? Шта? )))))))) Реляционная модель, это модель хранения данных, а ООП это вообще из мира программирования, там даже слово такое есть "программирование". Ты большой любитель крокодилов с ложками сравнивать. Алексей КВ работающей информационной системе обычно код модифицировать проще, чем структуру БД. Обычно код меняется чаще структуры БД. Утерянный код восстановить можно, утерянную БД восстановить невозможно. Опять ты несёшь какую-то чушь. Ты сравниваешь важность и возможность восстановления. Весь код может хранится в БД, прикинь? И что тогда ты мне тут скажешь? И наоборот, все данные могут храниться в коде, возьмём игрушку, где нельзя засейвиться, там нет БД вообще, что тогда важность кода вообще ниже плинтуса? Пора тебе перестать употреблять. Алексей КВероятно, ты работаешь не с информационными системами, отсюда у тебя другие взгляды на ситуацию. Я дружу с логикой. А ты занимаешься сравнением жопы с пальцем и радуешься своим выводам как ребёнок ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:15 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
И эти люди собираются лететь на Марс . Да вы же поубиваете друг друга в первую же неделю, если вам пива не давать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Интересно, что хоть и используешь code first, а всё равно на листочке и в голове рисуешь эти квадратики. Кляты любители дизигнеров! Ещё долго из головы эту нетрушную дурь выветривать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 16:17 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Мде... Ну ладно, уговорили меня в соседней теме создать модель данных помимо модели предметной области, хотя сущности что там, что там почти один в один совпадают. Но что делать с enum'ами и прочими совпадающими данными? Ну перечисления-то просто абсолютно одинаковые в обеих моделях. Вывод? - Как-то расшарить энумы между моделями. Как? Выносить энумы в отдельную сборку? Ссылаться в сборке модели данных на сборку модели предметной области? Или таки дублировать энумы в обехи сборках копипастом (ну это точно не дело)? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 16:24 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Интересно, что хоть и используешь code first, а всё равно на листочке и в голове рисуешь эти квадратики. Кляты любители дизигнеров! Ещё долго из головы эту нетрушную дурь выветривать. При чём тут "квадратики" и дизайнер баз данных? )) Видимо временем в мозгах границы окончательно размыло и народ перестал отделять одно от другого. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 19:40 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Мде... Ну ладно, уговорили меня в соседней теме создать модель данных помимо модели предметной области, хотя сущности что там, что там почти один в один совпадают. Но что делать с enum'ами и прочими совпадающими данными? Ну перечисления-то просто абсолютно одинаковые в обеих моделях. Вывод? - Как-то расшарить энумы между моделями. Как? Выносить энумы в отдельную сборку? Ссылаться в сборке модели данных на сборку модели предметной области? Или таки дублировать энумы в обехи сборках копипастом (ну это точно не дело)? Строго говоря, моделирование бизнеса это задача для отдельных специалистов. Задача программера, реализовать модель. Используя такие штуки, как EA, можно всё это добро тупо сгенерить из модели, а дальше ручками. Если хочется совсем полной автоматизации, можно создать цепочки типа модель-база, модель-код, и как-то всё это синхронизировать, но тогда есть опасность потерять контекст и смысл, для чего тебя наняли и увлечься генераторами... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 19:43 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КТы строишь систему от ООП модели, я строю от реляционной модели в БД, вот и вся разница. Мне удобнее так, тебе удобнее по другому. Мы оба правы, доказывать тут что-то глупо, оба подхода имеют право на жизнь. Зачем ты ООП приплёл? У тебя что, в программном коде нет ООП, там эээ... мм... реляционная модель? Шта? )))))))) Реляционная модель, это модель хранения данных, а ООП это вообще из мира программирования, там даже слово такое есть "программирование". Ты большой любитель крокодилов с ложками сравнивать.Я тебе говорю о методах проектирования, об способах описании структуры данных, об учёте физических особенностей СУБД на этапе проектирования. Причём тут программа? UML vs ER при проектировании, может так будет понятнее. hVosttАлексей КВ работающей информационной системе обычно код модифицировать проще, чем структуру БД. Обычно код меняется чаще структуры БД. Утерянный код восстановить можно, утерянную БД восстановить невозможно. Опять ты несёшь какую-то чушь. Ты сравниваешь важность и возможность восстановления. Весь код может хранится в БД, прикинь? И что тогда ты мне тут скажешь? И наоборот, все данные могут храниться в коде, возьмём игрушку, где нельзя засейвиться, там нет БД вообще, что тогда важность кода вообще ниже плинтуса? Пора тебе перестать употреблять. Вот поэтому я и отметил, что у меня речь идёт об [корпоративной] информационной системе, а не о каких-то программах непонятного назначения - где самое ценное, это информация, хранимая в данной системе. hVosttАлексей КВероятно, ты работаешь не с информационными системами, отсюда у тебя другие взгляды на ситуацию. Я дружу с логикой. А ты занимаешься сравнением жопы с пальцем и радуешься своим выводам как ребёнок )))Я хочу пользуясь случаем порассуждать на эту тему, пусть я в чём-то не прав, ну и что? Не будь занудой. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 04:58 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112И эти люди собираются лететь на Марс . Да вы же поубиваете друг друга в первую же неделю, если вам пива не давать.Что значит пива не давать?! И водку тоже?! Alexey2112Интересно, что хоть и используешь code first, а всё равно на листочке и в голове рисуешь эти квадратики. Кляты любители дизигнеров! Ещё долго из головы эту нетрушную дурь выветривать.Не надо ничего выветривать. "Новое - забытое старое" (ц) Они сейчас побегают со своим CF, наиграются и потом скажут, что таки лучше БД делать как раньше в дизайнере, а DbContext генерировать по готовой БД. И какое их вообще дело до наших методов проектирования? Их дело выдать на гора качественный, гибкий и расширяемый LINQ ORM. А как его мы будем применять, это уже не их не касается! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 05:18 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Мде... Ну ладно, уговорили меня в соседней теме создать модель данных помимо модели предметной области, хотя сущности что там, что там почти один в один совпадают. Но что делать с enum'ами и прочими совпадающими данными? Ну перечисления-то просто абсолютно одинаковые в обеих моделях. Вывод? - Как-то расшарить энумы между моделями. Как? Выносить энумы в отдельную сборку? Ссылаться в сборке модели данных на сборку модели предметной области? Или таки дублировать энумы в обехи сборках копипастом (ну это точно не дело)? Строго говоря, моделирование бизнеса это задача для отдельных специалистов. Задача программера, реализовать модель.Ты живёшь походу в какой-то параллельной реальности. :-) Ну не все себе могут позволить, или считают необходимым, иметь специальных людей, занимающихся только моделированием предметной области. Это может быть тот же программист, рисующий сразу структуру БД со слов технолога, ничего не понимающего в информационных системах. Проснись, пора уже. :-) hVosttИспользуя такие штуки, как EA, можно всё это добро тупо сгенерить из модели, а дальше ручками. Если хочется совсем полной автоматизации, можно создать цепочки типа модель-база, модель-код, и как-то всё это синхронизировать, но тогда есть опасность потерять контекст и смысл, для чего тебя наняли и увлечься генераторами... Что и было предложено. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 05:23 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Мде... Ну ладно, уговорили меня в соседней теме создать модель данных помимо модели предметной области, хотя сущности что там, что там почти один в один совпадают. Но что делать с enum'ами и прочими совпадающими данными? Ну перечисления-то просто абсолютно одинаковые в обеих моделях. Вывод? - Как-то расшарить энумы между моделями. Как? Выносить энумы в отдельную сборку? Ссылаться в сборке модели данных на сборку модели предметной области? Или таки дублировать энумы в обехи сборках копипастом (ну это точно не дело)? Строго говоря, моделирование бизнеса это задача для отдельных специалистов. Задача программера, реализовать модель. Используя такие штуки, как EA, можно всё это добро тупо сгенерить из модели, а дальше ручками. Если хочется совсем полной автоматизации, можно создать цепочки типа модель-база, модель-код, и как-то всё это синхронизировать, но тогда есть опасность потерять контекст и смысл, для чего тебя наняли и увлечься генераторами... Нет у нас отдельных специалистов и не будет. Ты лучше скажи, что делать с энумами. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 05:30 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КAlexey2112И эти люди собираются лететь на Марс . Да вы же поубиваете друг друга в первую же неделю, если вам пива не давать.Что значит пива не давать?! И водку тоже?! Алкашня в треде! "Алло, полиция?! Тут пьяный дебошь! Убивают!" С энумами пока решил - добавить ссыль на сборку с моделью предметной области. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 05:34 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112С энумами пока решил - добавить ссыль на сборку с моделью предметной области.Дались тебе эти энумы. Ну ставь рядом с "магическим числом" комментарий, где по коду не понятно, из какого классификатора код. Обычно всё понятно, даже комментарии не требуются. Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 05:51 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
зы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 05:55 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей Кзы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте. Ты опять за своё? У нас тут CF! Кстати, не смотрел ещё, как CF генерит таблицы для энумов. Если в виде таблицы-справочника, то ОК. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 08:27 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КЯ тебе говорю о методах проектирования, об способах описании структуры данных, об учёте физических особенностей СУБД на этапе проектирования. Причём тут программа? UML vs ER при проектировании, может так будет понятнее. При том, что бизнесу положить большой болт на способы хранения в твой любимой СУБД. Ты же не будешь объяснять пользователю про реляционные связи и что тебе надо все по таблицам раскладывать? Если ты не болен конечно. А ты идёшь в разработке не от бизнеса, а от СУБД, что крайне глупо и не дальновидно. Алексей КВот поэтому я и отметил, что у меня речь идёт об [корпоративной] информационной системе, а не о каких-то программах непонятного назначения - где самое ценное, это информация, хранимая в данной системе. И что тебе даст информация, которой ты не можешь воспользоваться? Дашь бухгалтеру SQL Management Studio, типа на, херачь свою бухгалтерию? Алексей КЯ хочу пользуясь случаем порассуждать на эту тему, пусть я в чём-то не прав, ну и что? Не будь занудой. :-) Так давай сравнивать сравниваемое :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 09:20 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей Кзы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте. фу-фу-фу... какая жесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 09:21 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кзы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте. Ты опять за своё? У нас тут CF!Ну и что теперь, выгоните меня? :-) Alexey2112Кстати, не смотрел ещё, как CF генерит таблицы для энумов. Если в виде таблицы-справочника, то ОК.Вероятно, никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 10:49 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КЯ тебе говорю о методах проектирования, об способах описании структуры данных, об учёте физических особенностей СУБД на этапе проектирования. Причём тут программа? UML vs ER при проектировании, может так будет понятнее. При том, что бизнесу положить большой болт на способы хранения в твой любимой СУБД. Ты же не будешь объяснять пользователю про реляционные связи и что тебе надо все по таблицам раскладывать? Если ты не болен конечно. А ты идёшь в разработке не от бизнеса, а от СУБД, что крайне глупо и не дальновидно.Я сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 10:55 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей Кзы: энумы тоже можно сгенерировать по БД. Благо T4 Text Template теперь в комплекте. фу-фу-фу... какая жесть. Ну строковые константы с ролями системы безопасности генерируются, и все довольны. Но я сразу сказал, что энумы - это уже перебор. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 10:56 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КhVosttпропущено... При том, что бизнесу положить большой болт на способы хранения в твой любимой СУБД. Ты же не будешь объяснять пользователю про реляционные связи и что тебе надо все по таблицам раскладывать? Если ты не болен конечно. А ты идёшь в разработке не от бизнеса, а от СУБД, что крайне глупо и не дальновидно.Я сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное. А твоя концептуальная модель на чём написана? Если не на C#, то явно это убого. Ну что ещё может быть более удобным, чем описание модели на C#? Я имею ввиду, на нормальном языке программирования, а не эти ваши UML, хреномель и прочие базы данных. Они все какие-то ограниченные, подогнанные под свои узенькие задачки, и при расширении начинают напоминать кучу костылей, слепленных соплями - вот-вот развалятся под напором протекающих абстракций. Выбрали бы с самого начала нормальный программерский язык для моделирования таких вещей - это было бы меньшим из зол. Но зато сразу куча преимуществ - не надо городить всю эту костыльную семантическую обслугу в виде SQL и прочей хрени. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:02 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Ещё один минус CF - миграции. На каждый чих писать тонны кода. Вот есть у меня несколько таблиц, сделанных по классам через наследование: так или так . Создал я БД. Теперь хочу поменять эти классы на композицию. Ну, тут надо ручками всё переписывать. Так мало того, что надо все модели в коде переделать, так ещё миграции прописать. Даже для трёх таблиц с полудесятком полей в каждой это будет под два экрана кода миграций. Если в БД данных нет и она небольшая, то проще будет создать новую БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:12 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Если в БД данных нет и она небольшая, то проще будет создать новую БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:12 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... Я сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное. А твоя концептуальная модель на чём написана?Когда как. Может быть и простенькая ER-схемка карандашиком на бумаге. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Ещё один минус CF - миграции. На каждый чих писать тонны кода. Вот есть у меня несколько таблиц, сделанных по классам через наследование: так или так . Создал я БД. Теперь хочу поменять эти классы на композицию. Ну, тут надо ручками всё переписывать. Так мало того, что надо все модели в коде переделать, так ещё миграции прописать. Даже для трёх таблиц с полудесятком полей в каждой это будет под два экрана кода миграций. Если в БД данных нет и она небольшая, то проще будет создать новую БД.Раньше писали миграции на чистом SQL DDL, теперь SQL DDL обёрнут в C#. Кому как больше нравится. А само оно не напишется, чудес не бывает. Впрочем, есть всякие сравниватели БД, выдающие SQL DDL для дельты схемы, но я им как-то не доверяю. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:19 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Если в БД данных нет, то проще будет создать новую БД.Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:23 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КAlexey2112пропущено... А твоя концептуальная модель на чём написана?Когда как. Может быть и простенькая ER-схемка карандашиком на бумаге. Как из неё сгенерить БД и ОРМ? А вот CF могёт. C# - сила! Алексей КAlexey2112Ещё один минус CF - миграции. На каждый чих писать тонны кода. Вот есть у меня несколько таблиц, сделанных по классам через наследование: так или так . Создал я БД. Теперь хочу поменять эти классы на композицию. Ну, тут надо ручками всё переписывать. Так мало того, что надо все модели в коде переделать, так ещё миграции прописать. Даже для трёх таблиц с полудесятком полей в каждой это будет под два экрана кода миграций. Если в БД данных нет и она небольшая, то проще будет создать новую БД.Раньше писали миграции на чистом SQL DDL, теперь SQL DDL обёрнут в C#. Кому как больше нравится. А само оно не напишется, чудес не бывает. Впрочем, есть всякие сравниватели БД, выдающие SQL DDL для дельты схемы, но я им как-то не доверяю. Что с данными происходит, когда вот так мигрируют? Не проще иногда создать новую чистую БД и туда данные из старой перегнать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:24 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... Когда как. Может быть и простенькая ER-схемка карандашиком на бумаге. Как из неё сгенерить БД и ОРМ?БД создаётся ручками, потому что концептуальная схема не содержит всех необходимых деталей для создания БД. А ORM-обёртка уже генерируется по БД. Alexey2112А вот CF могёт. C# - сила!Верю. :-) Alexey2112Алексей Кпропущено... Раньше писали миграции на чистом SQL DDL, теперь SQL DDL обёрнут в C#. Кому как больше нравится. А само оно не напишется, чудес не бывает. Впрочем, есть всякие сравниватели БД, выдающие SQL DDL для дельты схемы, но я им как-то не доверяю. Что с данными происходит, когда вот так мигрируют? Не проще иногда создать новую чистую БД и туда данные из старой перегнать?Ну тут зависит от ситуации. Да, в каких-то случаях возможно проще отдать со следующей версией новую БД + конвертер данных в неё. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:29 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... Я сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное. А твоя концептуальная модель на чём написана? Если не на C#, то явно это убого. Ну что ещё может быть более удобным, чем описание модели на C#? Я имею ввиду, на нормальном языке программирования, а не эти ваши UML, хреномель и прочие базы данных. Они все какие-то ограниченные, подогнанные под свои узенькие задачки, и при расширении начинают напоминать кучу костылей, слепленных соплями - вот-вот развалятся под напором протекающих абстракций. Выбрали бы с самого начала нормальный программерский язык для моделирования таких вещей - это было бы меньшим из зол. Но зато сразу куча преимуществ - не надо городить всю эту костыльную семантическую обслугу в виде SQL и прочей хрени. не гони ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:56 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КЯ сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное. Т.е. по твоей концептуальной модели наследования тупо не рассматриваются, только потому что потом ты будешь всё раскладывать по реляционным таблицам? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 11:58 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КА ORM-обёртка уже генерируется по БД. 1. Как это потом синхронизируется и поддерживается? Я имею в виду миграции. 2. Может ли ОРМ создать схему в пустой БД? 3. Без сгенерированного класса из БД теперь ни чихнуть ни пукнуть? Поясню, с CF мне понадобился новый класс, он не содержит бизнес-данных, поэтому его очевидно нет в концептуальной модели, но содержит данные, нужные для реализации части бизнес-логики. Я создаю класс по ходу написания кода, без отрыва "от производства", сразу пишу тесты и сразу могу протестировать. Запускаю дебаг и оно СРАЗУ работает, так как миграции и все дела. ORM это уже давным давно больше, чем обёртка над БД. По крайне мере, если говорить об EF. Поэтому генерация из БД это ущёрбный подход. Может только если на первоначальной стадии, а дальше CF. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 12:03 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КЯ сначала строю концептуальную модель, потом по ней строю структуру БД, потом всё остальное. Т.е. по твоей концептуальной модели наследования тупо не рассматриваются, только потому что потом ты будешь всё раскладывать по реляционным таблицам?Наследование описывается ER отношением 1-1, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 12:04 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosAlexey2112пропущено... А твоя концептуальная модель на чём написана? Если не на C#, то явно это убого. Ну что ещё может быть более удобным, чем описание модели на C#? Я имею ввиду, на нормальном языке программирования, а не эти ваши UML, хреномель и прочие базы данных. Они все какие-то ограниченные, подогнанные под свои узенькие задачки, и при расширении начинают напоминать кучу костылей, слепленных соплями - вот-вот развалятся под напором протекающих абстракций. Выбрали бы с самого начала нормальный программерский язык для моделирования таких вещей - это было бы меньшим из зол. Но зато сразу куча преимуществ - не надо городить всю эту костыльную семантическую обслугу в виде SQL и прочей хрени. не гони Пришёл главный ненавистник CF. А почему, кстати, ненавистник? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 12:08 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КА ORM-обёртка уже генерируется по БД. 1. Как это потом синхронизируется и поддерживается? Я имею в виду миграции.Как будто до появления EF миграции никто не делал. Рукописный SQL DDL. hVostt2. Может ли ОРМ создать схему в пустой БД?Ну EF может это делать? У меня EF. hVostt3. Без сгенерированного класса из БД теперь ни чихнуть ни пукнуть? Поясню, с CF мне понадобился новый класс, он не содержит бизнес-данных, поэтому его очевидно нет в концептуальной модели, но содержит данные, нужные для реализации части бизнес-логики. Я создаю класс по ходу написания кода, без отрыва "от производства", сразу пишу тесты и сразу могу протестировать. Запускаю дебаг и оно СРАЗУ работает, так как миграции и все дела.Я ничего не понял. hVosttORM это уже давным давно больше, чем обёртка над БД. По крайне мере, если говорить об EF. Поэтому генерация из БД это ущёрбный подход. Может только если на первоначальной стадии, а дальше CF.Да пожалуйста, мне не жалко. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 12:09 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112ViPRosпропущено... не гони Пришёл главный ненавистник CF. А почему, кстати, ненавистник?Смотри шире, он ненавистник РМД и ООП. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 12:10 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttгенерация из БД это ущёрбный подход. Может только если на первоначальной стадии, а дальше CF. Не на первоначальной стадии, ты хотел сказать, а на стадии дизайнера. Т. е. нужно просто создать/заиметь визуальный дизайнер таблиц. И чтобы каждое его действие сразу в миграцию отображалось - как в пакетах Офиса каждое действите логируется на VB. Тогда можно будет макросы писать для БД. Но, если почитать блоги команды EF, редактор у них либо будет нескоро, либо вообще не. Что, конечно, не хорошо. Я вот диаграммами пока удовлетворяюсь - сделал БД на CF, отправил на сервер, смотрю диаграмму получившуюся. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 12:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Но, если почитать блоги команды EF, редактор у них либо будет нескоро, либо вообще не. Что, конечно, не хорошо.В Visual Studio есть Class Diagramm. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 12:21 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КAlexey2112Но, если почитать блоги команды EF, редактор у них либо будет нескоро, либо вообще не. Что, конечно, не хорошо.В Visual Studio есть Class Diagramm. Там ключики жёлтенькие и восьмёрки на боку есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей ККак будто до появления EF миграции никто не делал. Рукописный SQL DDL. Я не любитель клавадрочерства )) Алексей КЯ ничего не понял. Написал классы, сразу заюзал, затестил, таблицы появились в базе. Сами. Всё само, автоматизация. Гастрабайтеры, у которых просто тяма не развита, пусть дрочат дизайнеры и клаву )) Алексей КДа пожалуйста, мне не жалко. :-) Мне тоже не жалко, ешь кактусы )) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:29 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttНаписал классы, сразу заюзал, затестил, таблицы появились в базе. Сами. Всё само, автоматизация. Гастрабайтеры, у которых просто тяма не развита, пусть дрочат дизайнеры и клаву )) Мне тоже не жалко, ешь кактусы )) Ввел метаданные, сразу появилось готовое приложение. Нифига делать не надо (никаких сраных "классов", форм, миграций и т.д.). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:56 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttНаписал классы, ... затестил А как данные тестить? И зачем? Я думал, только логику тестят. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 15:26 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRoshVosttНаписал классы, сразу заюзал, затестил, таблицы появились в базе. Сами. Всё само, автоматизация. Гастрабайтеры, у которых просто тяма не развита, пусть дрочат дизайнеры и клаву )) Мне тоже не жалко, ешь кактусы )) Ввел метаданные, сразу появилось готовое приложение. Нифига делать не надо (никаких сраных "классов", форм, миграций и т.д.). Это универсальное приложение, которое имеет одну кодовую базу для мобилок и десктопа, имеет масштабирующийся интерфейс типа Continuity? Про кроссплатформенность не говорю - все, кто истекают слюнями по андроидам, яблокам и вебу будут гореть в аду. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 15:28 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112, Это приложение за которое платят бабки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 15:48 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... В Visual Studio есть Class Diagramm. Там ключики жёлтенькие и восьмёрки на боку есть?Нет. Это когда сомнений по генерации БД больше не будет, ключики и восьмёрки беспокоить перестанут, можно будет хоть как-то разгрести EF-ные классы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 16:23 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosAlexey2112, Это приложение за которое платят бабки.Плохо, когда работа не приносит человеку удовольствия. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 16:26 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttАлексей КЯ ничего не понял. Написал классы, сразу заюзал, затестил, таблицы появились в базе. Сами. Всё само, автоматизация. Гастрабайтеры, у которых просто тяма не развита, пусть дрочат дизайнеры и клаву ))И индексы в БД создавать не надо, и планы выполнения SQL запросов смотреть не приходится. Не жизнь, а сказка. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 16:31 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosВвел метаданные, сразу появилось готовое приложение. Нифига делать не надо (никаких сраных "классов", форм, миграций и т.д.). Про розовых пони на радуге ещё расскажи, очень интересно ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 19:03 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosAlexey2112, Это приложение за которое платят бабки. Это редактор баз данных, а не бизнес-приложение. Сделать генератор CRUD-приложения по любой схеме БД много ума не надо, этой "технологии" уже много лет. Называется типа "Lanch time application", детский лепет, ничего с бизнесом не имеет общего. Ну разве что вы успешно своему начальству лапшичку на уши развешиваете, тогды гуд, молодцы ребята ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 19:05 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КИ индексы в БД создавать не надо, и планы выполнения SQL запросов смотреть не приходится. Не жизнь, а сказка. :-) Ну неумехи-гастрабайтеры, вместо того, чтобы осилить технологии, тупо жмут на батоны и пяляться в планы запросов. А у нормальных людей метрики снимаются автоматом, покрытие тестами, оценка качества кода сонаром, собирается статистика и собираются сигналы, никому в голову не придёт от неча делать просто так пялться в планы как дундук. Есть много серьёзной работы. Я не понимаю чего ты так в эти планы упёрся. Сколько раз на дню смотришь планы? Признавайся! Может не смотришь, а что-то другое с ними делаешь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 19:08 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttViPRosAlexey2112, Это приложение за которое платят бабки. Это редактор баз данных, а не бизнес-приложение. Сделать генератор CRUD-приложения по любой схеме БД много ума не надо, этой "технологии" уже много лет. Называется типа "Lanch time application", детский лепет, ничего с бизнесом не имеет общего. Ну разве что вы успешно своему начальству лапшичку на уши развешиваете, тогды гуд, молодцы ребята покажи первое(генератор) и второе(бизнес-приложение) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 19:19 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КViPRosAlexey2112, Это приложение за которое платят бабки.Плохо, когда работа не приносит человеку удовольствия. Да, я тоже что-то типа такого хотел сказать. hVosttViPRosAlexey2112, Это приложение за которое платят бабки. Это редактор баз данных, а не бизнес-приложение. Сделать генератор CRUD-приложения по любой схеме БД много ума не надо, этой "технологии" уже много лет. Называется типа "Lanch time application" LightSitch же. Индусы в МС налабали уже давно - с возможностью выбора гуя на сервелате или хтмл5. Хреново в нём только то, что на сишарпе там писать нельзя - какая-то фигня из собственного диалекта и АПИ (так мне говорили). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 19:42 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Алексей Кпропущено... Плохо, когда работа не приносит человеку удовольствия. Да, я тоже что-то типа такого хотел сказать. hVosttпропущено... Это редактор баз данных, а не бизнес-приложение. Сделать генератор CRUD-приложения по любой схеме БД много ума не надо, этой "технологии" уже много лет. Называется типа "Lanch time application" LightSitch же. Индусы в МС налабали уже давно - с возможностью выбора гуя на сервелате или хтмл5. Хреново в нём только то, что на сишарпе там писать нельзя - какая-то фигня из собственного диалекта и АПИ (так мне говорили). "LightSitch" - ерунда. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 20:21 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosпокажи первое(генератор) и второе(бизнес-приложение) https://www.google.ru/#newwindow=1&q=generate crud application from database Второе что тебе показать? Что пользователю до фанаря твои круды и реляционные таблицы? Что бухгалтеру положить большой и толстый на то, сколько там у тебя таблиц в БД -- 1000 или 2 и какие ты там супер-мета-генераторы применяешь, пользуешься ли бубном и танцуешь ли ты по ночам с ноутом под луной. Если они захотят эксель, они откроют ексель, а не твой эмулятор экселя, но с БД и с формами, который просто сохраняет данные по таблицам и показывает их же, им нужна бизнес-логика, сложные вычисления, которые они не хотят делать на калькуляторе, умные отчёты, workflow, события, уведомления, взаимодействие, удобный UI, с которым не надо разбираться с талмудом в руках и прочее. Им не нужно сгенерированное УГ с сотней полей и десятком вкладочек на одной форме другими словами. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2015, 16:54 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
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 не в силах описать скорее всего) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2015, 20:59 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Парни, вы смешны. Два кулика, сидящих каждый в своем болоте и... Дальше, думаю, понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 09:39 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAПарни, вы смешны. Два кулика, сидящих каждый в своем болоте и... Дальше, думаю, понятно. Чиво? В своём болоте лучше, чем в чужом. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 10:56 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRos1. модель предметной области 1.1 структурная 1.2 событийная 1.3 поведенческая после описание модели все остальное вычислимо - пользовательский интерфейс, АПИ,..., красота и т.д. зависит от доступных компонент Ну тогда понятно, что никакие ЯП нинужны. Нужно лишь 2 компонента: дизайнер предметной области, генератор. Весь большой мир до нельзя ущёрбен, так как не допёрли до сих пор и сидят шпилят в своих убогих ЯП ViPRosВИПРОС на основе 1.1 -1.3 генерирует приложение, который ты фиг напишешь, гарантию даю (да ты и 1.1-1.3 не в силах описать скорее всего) По описанию, похоже на обычный редактор данных с формами. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 11:01 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttПо описанию, похоже на обычный редактор данных с формами. В Автоматизированной системе без редактирования данных (наполнение модели содержимым) не обойтись, на то она и автоматизированная при этом возможны несколько сценариев по степени автоматизации 1. сильная автоматизация - система принуждает человека ввести недостающую информацию для решения регламентированных задач по мере возникновения нужды в решении таких задач 2. слабая автоматизация - человек наполняет модель нужной информацией и принуждает систему решить определенные задачи 1 от 2 отличается механизмом запуска задач по регламенту, а наполнить модель надо так и так так что без "редактор форм" и т.д. интерфейс по HID не обойтись ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 11:50 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
до 1 мало кто добрался (кроме автоматических систем управления). до сих пор только и слышно - назначение ПРАВ пользователей, мало кто видел, назначение ОБЯЗАННОСТЕЙ пользователям (ВИП.Производство рассматривает людишек как ресурсы и планирует их лайфтайм в системе с учетом их системного календаря и накладывает на них обязанности) всякие визарды и обрывочные воркфлоу на ролевых задачах встречаются а сильно регламентированных предметных областях, а в основном - высвечивается список задач, а какую и когда выполнить решает пользователь ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 12:03 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRos, следить за бензовозами онлайн, контролировать следование путевому листу и при необходимости корректировать задание водителю твоя система позволяет? Если да, то насколько эффективно? Один оператор из диспетчерской сколько бензовозов может вести? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 12:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAViPRos, следить за бензовозами онлайн, контролировать следование путевому листу и при необходимости корректировать задание водителю твоя система позволяет? Если да, то насколько эффективно? Один оператор из диспетчерской сколько бензовозов может вести? какую систему имеешь ввиду? их много у меня :) ВИП.Производство составит для твоих бензовозов и их водителей оптимальное расписание доставки к точкам начальное и промежуточные местоположение вносится в систему вручную (нет опроса) прикрутить туда опросную систему (да пофиг откуда данные появятся - из OPC сервера, опроса по каким то каналам,, вручную и т.д.) можно, как только кто то за это заплатит ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 12:29 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosskyANAViPRos, следить за бензовозами онлайн, контролировать следование путевому листу и при необходимости корректировать задание водителю твоя система позволяет? Если да, то насколько эффективно? Один оператор из диспетчерской сколько бензовозов может вести? какую систему имеешь ввиду? их много у меня :) ВИП.Производство составит для твоих бензовозов и их водителей оптимальное расписание доставки к точкам начальное и промежуточные местоположение вносится в систему вручную (нет опроса) прикрутить туда опросную систему (да пофиг откуда данные появятся - из OPC сервера, опроса по каким то каналам,, вручную и т.д.) можно, как только кто то за это заплатитсистем у тебя много, но не в одной нету того, о чём спросил я и випрос не позволяет это взять и сгенерировать Он преднозначен для своей ограниченной ниши и не стоит через него смотреть на рынок целиком ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 14:31 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANA, для онлайн сбора информации существуют куча готового решения - всякие SCADA, УСО и т.д., зачем ВИП.Производству опрашивать устройство, когда он может опрашивать OPC или прокладка на OPC вызовет ВИП.Производство ты просто не видел ничего промышленного, хотя все время талдычишь про интеграцию, интерфейсы и другую хрень ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 14:42 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
что блин ограничено? покажи систему, которая по функционалу может потягаться с ВИП.Производством? кто блин сможет разложит контракт (про автогенерацию, выполнимость, рекомендации по реструктурузации для выполнимости,...) на проекты по разработке изделия, подготовке производства, само производство (в кооперации), внешнюю и внутреннюю логистику, составить и контролировать расписания и бюджеты и т.д.? а ты со своим телефон все лезешь, телефон - последняя миля, прикрутится как только надо будет, пока никому нах не нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 14:50 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
а рынок мой - госконцерны из сотен предприятий и таких море в России ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 14:51 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRos, госконцерны - это и есть ограниченная ниша. И какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 16:11 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAИ какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает? Как всегда, у skyANA всё сводится к долям рынка. Какой-нибудь прыщавый студент из гугла, проработаший там месяцок тоже может радостно заявлять: вот всё ваше ПО это никчёмное унылое УГ, так как наше распространено на всех континентах Этой Земли. Но раз уж пошла такая вафля: http://urlshpion.ru/www.vipros.ru Vipros занимает 2 839 582 место в Россия. 'Платформа ВИПРОС.' Приблизительная стоимость 5 734,17 руб * Т.е. как легко можно увидеть, платформа ВИПРОС, это нафиг никому не упавшая вафля, которой тупо никто даже не интересуется и практически никто о ней не знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 17:22 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ГГГГ ещё по теме, на главной странице сайта написано: На основе метаданных программа автоматически создает базу данных на SQL-сервере, создает визуальное представление данных в виде таблиц, деревьев и диаграмм Ганта в свободной форме, с возможностью редактирования и бесконфликтного хранения в базе данных. Представляю, как бы меня погнали ссаными тряпками из конторы, куда бы я пришёл впаривать это поделие. И правильно сделали бы. Я бы тоже на их месте погнал бы такого деятеля. Какие ещё SQL-сервера, какое ещё безконфликтное хранение, вы что несёте господа? Возьмём противоположный пример, Эльба: Помогаем вести бизнес и сдавать отчётность через интернет Напомним Посчитаем Отправим У нас есть всё, что необходимо вашему бизнесу Отчётность в налоговую Отчётность за сотрудников Документы, деньги, учёт товаров Доступ с любого устройства Простой и понятный интерфейс Вооот! Именно то, что нужно пользователю. Просто и понятно, реальный бизнес. Нафига ему сдались эти SQL, генераторы, метаданные, ииии.... барабанная дробь, просто чумовая штука! " с возможностью редактирования " НУ ФИГА СЕ! можно редактировать?! да ладно, вы шутите, не может быть, это ж выдумки? нет, вы всё правильно поняли, да-да, у нас можно редактировать, это ноу-хау придумали наши инженеры в секретном подземном бункере, такое есть вот только у нас)))))))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 17:33 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosВ Автоматизированной системе без редактирования данных (наполнение модели содержимым) не обойтись, на то она и автоматизированная при этом возможны несколько сценариев по степени автоматизации 1. сильная автоматизация - система принуждает человека ввести недостающую информацию для решения регламентированных задач по мере возникновения нужды в решении таких задач 2. слабая автоматизация - человек наполняет модель нужной информацией и принуждает систему решить определенные задачи 1 от 2 отличается механизмом запуска задач по регламенту, а наполнить модель надо так и так так что без "редактор форм" и т.д. интерфейс по HID не обойтись Короче, у вас обыкновенный MS Access, только для веба. Что касается форм. Правильные формы должнен разрабатывать UX дизайнер, они не должны генерироваться ни на основе никаких мета-данных, так как в результате генерации в 99,9% будет абсолютно не юзабельное номеклатурно-бюрократическое унылое тошнотворное УГ. А судя по тому, что я видел из скринов, которые ты выкладывал, я считаю, что прав. Автоматизированная система должна быть для пользователя максимальна удобна, интуитивно понятна, максимально простая. Do it simple stupid. Но сделать, чтобы было просто -- сложно. Поэтому для этого существует целый класс отдельных специалистов, способных решить эту проблему. А задача программиста -- реализовать. Ваша же система, это мозг программиста наизнанку, потому что только он способен понять, что такое "безконфликтное хранение" и "генерация метаданных", но никак не пользователь, а для бизнеса такие усложнения выливаются в огромные бессмысленные и беспощадные расходы. Потому что нужна толпа интеграторов, курсы, талмуды, регламенты и прочая шелуха, за которую кто-то должен платить. Программист об этом не думает, не ему же платить. Но такие поделки показывать людям просто банально должно быть стыдно. Я так считаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 20:25 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttКороче, у вас обыкновенный MS Access, только для веба. Тьфу, напутал, "..только для MS SQL.." ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 20:26 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAViPRos, госконцерны - это и есть ограниченная ниша. И какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает? ВИПРОС зарабатывает много в отличии от ViPRos ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 22:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttViPRosВ Автоматизированной системе без редактирования данных (наполнение модели содержимым) не обойтись, на то она и автоматизированная при этом возможны несколько сценариев по степени автоматизации 1. сильная автоматизация - система принуждает человека ввести недостающую информацию для решения регламентированных задач по мере возникновения нужды в решении таких задач 2. слабая автоматизация - человек наполняет модель нужной информацией и принуждает систему решить определенные задачи 1 от 2 отличается механизмом запуска задач по регламенту, а наполнить модель надо так и так так что без "редактор форм" и т.д. интерфейс по HID не обойтись Короче, у вас обыкновенный MS Access, только для веба. Что касается форм. Правильные формы должнен разрабатывать UX дизайнер, они не должны генерироваться ни на основе никаких мета-данных, так как в результате генерации в 99,9% будет абсолютно не юзабельное номеклатурно-бюрократическое унылое тошнотворное УГ. А судя по тому, что я видел из скринов, которые ты выкладывал, я считаю, что прав. Автоматизированная система должна быть для пользователя максимальна удобна, интуитивно понятна, максимально простая. Do it simple stupid. Но сделать, чтобы было просто -- сложно. Поэтому для этого существует целый класс отдельных специалистов, способных решить эту проблему. А задача программиста -- реализовать. Ваша же система, это мозг программиста наизнанку, потому что только он способен понять, что такое "безконфликтное хранение" и "генерация метаданных", но никак не пользователь, а для бизнеса такие усложнения выливаются в огромные бессмысленные и беспощадные расходы. Потому что нужна толпа интеграторов, курсы, талмуды, регламенты и прочая шелуха, за которую кто-то должен платить. Программист об этом не думает, не ему же платить. Но такие поделки показывать людям просто банально должно быть стыдно. Я так считаю. всего мира не хватит, что бы на все задачи найти прогера и UI дизайнера для всех норм станков (стоимостью от 150000$) для почти любой детали прога генерируется автоматом а тут на тебе - для какого то сраного бухгалтера стоимостью 50$ баксов прогеры и дизайнеры нужны спи дальше и рисуй странички для торговли семечками :) ВИПРОС знает Росатом, Ростех,... и этого сильно достаточно ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 22:23 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosвсего мира не хватит, что бы на все задачи найти прогера и UI дизайнера 1. изначально, это что вообще за бред? 2. пользователь должен страдать, потому что кому-то мозгов-нехватает/тупо-денег-нет/религиозные-убеждения не позволяют нанять специалистов? 3. слава богу, конкуренция и всегда найдётся компания с адекватным вменяемым руководством, которая сделает необходимый бизнесу продукт, а недальновидные конторы пойдут по ветру. история имеет сотни тысяч таких примеров. 4. пока жива система откатов, дебильно устроенных тендеров и тупой бюрократии будут жить подобные ВИПРОС-у системы. но всё может и поменяться, или не всё, но многое. небольшое допущение по поводу ВИПРОС-а: я-то его живьём не щупал, и может быть местами или полностью ошибаюсь на его счёт. однако из того, что я видел, не позволяет мне думать иначе. ViPRosдля всех норм станков (стоимостью от 150000$) для почти любой детали прога генерируется автоматом а тут на тебе - для какого то сраного бухгалтера стоимостью 50$ баксов прогеры и дизайнеры нужны ты какие-то бесчеловечные вещи говоришь. ещё скажи, что юзер это тупая, ущербная обезьяна, и тебе даже плюнуть в его сторону западло. не то, что станок с деталями, вот это кайф ViPRosспи дальше и рисуй странички для торговли семечками :) ну-ну ViPRosВИПРОС знает Росатом, Ростех,... и этого сильно достаточно у нас во многих гос. сферах до сих пор пользуются ущербными системами. но это вовсе не значит, что пользователи довольны и это хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 23:30 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVostt, да плевать на пользователей, пользователь этот тот винтик, который еще не автоматизирован из-за как раз тех причин, которых ты перечислил (откаты, тендер непродуманные и т.д.) человек как исполнитель и как ЛПР - говно ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 23:58 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosда плевать на пользователей, пользователь этот тот винтик, который еще не автоматизирован из-за как раз тех причин, которых ты перечислил (откаты, тендер непродуманные и т.д.) человек как исполнитель и как ЛПР - говно ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 05:50 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttskyANAИ какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает? Как всегда, у skyANA всё сводится к долям рынка. Какой-нибудь прыщавый студент из гугла, проработаший там месяцок тоже может радостно заявлять: вот всё ваше ПО это никчёмное унылое УГ, так как наше распространено на всех континентах Этой Земли.да нет, я не об этом... Я о том, что рынок он большой, ПО совершенно разное, а не "им нужны умные отчеты", или ВИПРОС. Но вы можете дальше разводить беспощадный флейм, дело ваше. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 08:41 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAда нет, я не об этом... Я о том, что рынок он большой, ПО совершенно разное, а не "им нужны умные отчеты", или ВИПРОС. Мне так и не удалось понять, что ты хотел сказать. Мир большой и всего много. Но общие требования можно сформулировать, это не так сложно. И величина мира и доли рынка тут не при чём вообще. Не знаю, почему и к чему ты их всегда приплетаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:11 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttskyANAда нет, я не об этом... Я о том, что рынок он большой, ПО совершенно разное, а не "им нужны умные отчеты", или ВИПРОС. Мне так и не удалось понять, что ты хотел сказать. Мир большой и всего много. Но общие требования можно сформулировать, это не так сложно. И величина мира и доли рынка тут не при чём вообще. Не знаю, почему и к чему ты их всегда приплетаешь.я хотел сказать, что спор ваш не имеет смысла, т.к. вы из разных болот :) Тупой флейм у вас выходит А про доли в нише (не всего рынка) спросил, потому как пафосно прозвучало: госкорпорации, Роснано... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:20 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosskyANAViPRos, госконцерны - это и есть ограниченная ниша. И какие доли процентов этого рынка отхватил Випрос? Сколько лимонов баксов в год зарабатывает? ВИПРОС зарабатывает много в отличии от ViPRosмного это сколько в лимонах зелени? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:22 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Интересует чисто приход. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:27 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAА про доли в нише (не всего рынка) спросил, потому как пафосно прозвучало: госкорпорации, Роснано... :)В этой нише нет никакого рынка. Попробуй приди например сюда и скажи, что SAP УГ, наша новая система "ПРТ РПА ГОРП" лучше, давайте внедрять её. Потом вместе посмеёмся. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:28 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КskyANAА про доли в нише (не всего рынка) спросил, потому как пафосно прозвучало: госкорпорации, Роснано... :)В этой нише нет никакого рынка. Попробуй приди например сюда и скажи, что SAP УГ, наша новая система "ПРТ РПА ГОРП" лучше, давайте внедрять её. Потом вместе посмеёмся. :-)мне довелось поработать в компании, где генеральный был топ менеджером в "ЮКОС" Нормально он приходил и в "Норильский никель", и во ВНИИСТ, и в банки... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:34 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
А для РЖД у меня коллега проекты делал. Там не только САП. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:38 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... В этой нише нет никакого рынка. Попробуй приди например сюда и скажи, что SAP УГ, наша новая система "ПРТ РПА ГОРП" лучше, давайте внедрять её. Потом вместе посмеёмся. :-)мне довелось поработать в компании, где генеральный был топ менеджером в "ЮКОС" Нормально он приходил и в "Норильский никель", и во ВНИИСТ, и в банки...Ну мне не довелось контактировать с другими организациями подобного уровня. Сужу по другим глядя на эту. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:39 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAА для РЖД у меня коллега проекты делал. Там не только САП.И мы делаем проекты для РЖД. Но это автоматизация конкретной области, специфичной только для РЖД, реализация которой на SAP вызывает некоторые сложности. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 09:43 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КskyANAА для РЖД у меня коллега проекты делал. Там не только САП.И мы делаем проекты для РЖД. Но это автоматизация конкретной области, специфичной только для РЖД, реализация которой на SAP вызывает некоторые сложности.вот и я об этом :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 10:45 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Хъто не делал для /РЖД/, тот не настоящей русский тру программист! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 10:50 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttХъто не делал для умные отчеты, тот не настоящей русский тру программист! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 10:58 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAИнтересует чисто приход. ты не въезжаешь мне пофиг сколько она приносит в зелени или дровах не мне ж приносит вот счас типа ЦУ поступило - подготовить коробочный продукт для продажи на сторону и что? меня то в дележе нет :( ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 11:11 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
кстати, а тебе есть разница сколько юзверов вы обслуживаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 11:13 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... И мы делаем проекты для РЖД. Но это автоматизация конкретной области, специфичной только для РЖД, реализация которой на SAP вызывает некоторые сложности.вот и я об этом :)Вот! А всё остальное неспецифичное, вроде финансовых и трудовых ресурсов, покрыто SAP-ом и никого туда просто так не пустят. Другими словами, там нет никакого рынка. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 11:14 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... вот и я об этом :)Вот! А всё остальное неспецифичное, вроде финансовых и трудовых ресурсов, покрыто SAP-ом и никого туда просто так не пустят. Другими словами, там нет никакого рынка. не SAPом, тем кто под видом сап разработал всякую фигню ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 11:42 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosАлексей Кпропущено... Вот! А всё остальное неспецифичное, вроде финансовых и трудовых ресурсов, покрыто SAP-ом и никого туда просто так не пустят. Другими словами, там нет никакого рынка. не SAPом, тем кто под видом на базе сап разработал всякую фигню внедрил готовую конфигурациюПоправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 12:07 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosкстати, а тебе есть разница сколько юзверов вы обслуживаете?Да есть. Это на бонус влияет. Чем больше наш рост, тем больше мой бонус. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 12:47 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... вот и я об этом :)Вот! А всё остальное неспецифичное, вроде финансовых и трудовых ресурсов, покрыто SAP-ом и никого туда просто так не пустят. Другими словами, там нет никакого рынка.А в количественных метриках это как? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 12:48 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAViPRosкстати, а тебе есть разница сколько юзверов вы обслуживаете?Да есть. Это на бонус влияет. Чем больше наш рост, тем больше мой бонус. а у нас пофиг, хоть на одном заводе внедряй, хоть на 100 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:01 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Да есть. Это на бонус влияет. Чем больше наш рост, тем больше мой бонус. а у нас пофиг, хоть на одном заводе внедряй, хоть на 100То есть ты не знаешь, сколько внедрений в год и сколько это прихода в бабках? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:09 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAТо есть ты не знаешь, сколько внедрений в год и сколько это прихода в бабках? Думаю и фидбек пользователей не собирается. Грустно в общем. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:25 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAViPRosпропущено... а у нас пофиг, хоть на одном заводе внедряй, хоть на 100То есть ты не знаешь, сколько внедрений в год и сколько это прихода в бабках? блин, я даже не знаю сколько мои сотрудники зарабатывают, а ты про приход меня это не касается, я пишу и пишу, пишу и пишу :) а они все нанимают и нанимают, что бы переварить написанное :) раньше было как у вас - писал, продавал, внедрял, зарабатывал - вот тогда было интересно кому, скоко и т.д. а зачем сейчас то об этом мне замарачиваться? есть же эффективные менеджеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:32 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttskyANAТо есть ты не знаешь, сколько внедрений в год и сколько это прихода в бабках? Думаю и фидбек пользователей не собирается. Грустно в общем. почему не собирается? есть целый отдел сопровождения, обслуживает 100 предприятий минимум ежеквартальные изменения по внедренным, а по внедрению перманентно ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:34 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ничего грустного нет, все тип топ просто все это никак не отражается в моем кармане ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:35 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosничего грустного нет, все тип топ просто все это никак не отражается в моем кармане это тоже печально, весьма. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:41 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttViPRosничего грустного нет, все тип топ просто все это никак не отражается в моем кармане это тоже печально, весьма. да, тут ты прав ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:45 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosраньше было как у вас - писал, продавал, внедрял...я тоже только разаботкой занимаюсь, однако в курсе того, какой приход от Абрикоса в месяц и чего ты так напрягся-то? я просто спросил: знаешь, или нет... не знаешь и ладно, а что там у тебя было раньше и почему, мне фиолетово ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 13:48 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAViPRosраньше было как у вас - писал, продавал, внедрял...я тоже только разаботкой занимаюсь, однако в курсе того, какой приход от Абрикоса в месяц Просто у тебя контора небольшая и "у них", возможно, принято делиться инфой (если это не деза, конечно). А у нас скотинки должны больше работать и меньше есть - вот всё, что от них требуется. Скотинка по определению бессловесная - чего с ней говорить, тем более о каких-то высоких штилях типа доход фирмы. Да такая инфа у нас вообще под грифом секретно идёт, бо попи..., отка... и "обкашляли по-своему в баньке за водочкой и шмарами". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 14:41 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112skyANAпропущено... я тоже только разаботкой занимаюсь, однако в курсе того, какой приход от Абрикоса в месяц Просто у тебя контора небольшая и "у них", возможно, принято делиться инфой (если это не деза, конечно). А у нас скотинки должны больше работать и меньше есть - вот всё, что от них требуется. Скотинка по определению бессловесная - чего с ней говорить, тем более о каких-то высоких штилях типа доход фирмы. Да такая инфа у нас вообще под грифом секретно идёт, бо попи..., отка... и "обкашляли по-своему в баньке за водочкой и шмарами".Ой вот не надо тут эту херню разводить... Я про официальные данные спрашиваю. Неофициальные я у знакомого админа в приватной беседе спрошу. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 15:10 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAAlexey2112пропущено... Просто у тебя контора небольшая и "у них", возможно, принято делиться инфой (если это не деза, конечно). А у нас скотинки должны больше работать и меньше есть - вот всё, что от них требуется. Скотинка по определению бессловесная - чего с ней говорить, тем более о каких-то высоких штилях типа доход фирмы. Да такая инфа у нас вообще под грифом секретно идёт, бо попи..., отка... и "обкашляли по-своему в баньке за водочкой и шмарами".Ой вот не надо тут эту херню разводить... Я про официальные данные спрашиваю. Неофициальные я у знакомого админа в приватной беседе спрошу. на тебе про объемы и аппетиты токо читай до конца, а то не увидишь про бабки http://www.cnews.ru/news/top/index.shtml?2015/06/04/596248 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 15:27 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Ой вот не надо тут эту херню разводить... Я про официальные данные спрашиваю. Неофициальные я у знакомого админа в приватной беседе спрошу. на тебе про объемы и аппетиты токо читай до конца, а то не увидишь про бабки http://www.cnews.ru/news/top/index.shtml?2015/06/04/596248 Мне это не интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 15:58 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
EF 6.1. Скажите, что делать с коллекциями в POCO-классах? В этой статье ничего про это не написано, но когда создаёшь новый объект сущности, а у неё есть коллекция связанных сущностей, то добавить в эту коллекцию ничего нельзя - она null. В статье ничего не сказано, что надо её инициализировать. Зато в других статьях я нашёл целую кучу подходов: 1) инициализация коллекций в конструкторе (отрубает ленивую загрузку и чейндж трекинг в прокси-классах, которые создаёт EF по моим POCO); 2) http://stackoverflow.com/a/9912675 И т. д. Я пока выбрал второе, но дата ответа - 3 года назад. Ничего лучше пока нет? Я думал, этот EF сам в проксях сгенерит нужные инициализации. Вобщем, пока что могу сказать. CF сильно требователен к опытности разработчика. Если в DB first можно было налабать БД в дизайнере и забацать ORM, то тут путаешься в конвенциях и наполнении классов. Т. е. эти POCO - это с одной стороны модели, по которым будет генериться БД, а с другой, они же содержат в себе функциональность EF, к которой мы привыкли - отслеживание изменений, ленивая загрузка и т. д. И если вы не искушены в правильном написании всего этого, то рискуете потерять привычную вам по DB first функциональность - и это в лучшем случае. А в худшем - вообще всё поломать и затереть БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 16:03 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAAlexey2112пропущено... Просто у тебя контора небольшая и "у них", возможно, принято делиться инфой (если это не деза, конечно). А у нас скотинки должны больше работать и меньше есть - вот всё, что от них требуется. Скотинка по определению бессловесная - чего с ней говорить, тем более о каких-то высоких штилях типа доход фирмы. Да такая инфа у нас вообще под грифом секретно идёт, бо попи..., отка... и "обкашляли по-своему в баньке за водочкой и шмарами".Ой вот не надо тут эту херню разводить... Я про официальные данные спрашиваю. Неофициальные я у знакомого админа в приватной беседе спрошу. Админы, как и бухгалтера, в доле. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 16:06 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANA, ты как считаешь, почему в разделе .NET и вообще стека МС так мало новых тем-сообщений? Пора отпусков? Наступает маздай? МС-стек настолько идеален, что помощь почти не требуется? Или это Скуль становится непопулярным у дотнетчиков (а что у них становится популярным)? Раньше было каждый день по 10-15 новых тем. Щас иногда несколько дней ни одной новой темы или обновления старых. Вообще, сколько ни смотрел, а Скуль самый популярный русскоязычный ресурс по общему программированию, по-моему. Всякие CodeGuru и прочие вообще полудохлые. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 16:27 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAViPRosпропущено... на тебе про объемы и аппетиты токо читай до конца, а то не увидишь про бабки http://www.cnews.ru/news/top/index.shtml?2015/06/04/596248 Мне это не интересно. ниче, как прижмут, так сразу заинтересуешься ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 16:27 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Всякие CodeGuru CyberForum, ixbt и прочие. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 16:31 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Мне это не интересно. ниче, как прижмут, так сразу заинтересуешьсяахаха, испугал ежа голой жопой я на "ЮКОС" работал.. "ЮКОС" прижали, и чё? я пошёл работать в другое место.. работы хватает.. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 16:31 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... Мне это не интересно. ниче, как прижмут, так сразу заинтересуешься Как прижмут, он уедет в Америку или Европу, или фрилансить в Малую Азию или на острова. Модератор: Орлы, давайте без оскорблений и негатива. Я и так слишком демократично гляжу на оффтоп. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2015, 16:32 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAя на "ЮКОС" работал.. "ЮКОС" прижали, и чё? я пошёл работать в другое место.. работы хватает.. юкос-шмюкос... онуко вспомним: skyANAПарни, вы смешны. Два кулика, сидящих каждый в своем болоте и... Дальше, думаю, понятно. прям бугагашеньки. вот это самое, ну конечно, прям в тысячу и миллионы раз интереснее, чем нормальный непринуждённый спор о способах и методах разработки. прям испортил весь срач всю беседу со своими маркетинговыми причиндалами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2015, 20:03 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttskyANAя на "ЮКОС" работал.. "ЮКОС" прижали, и чё? я пошёл работать в другое место.. работы хватает.. юкос-шмюкос... онуко вспомним: skyANAПарни, вы смешны. Два кулика, сидящих каждый в своем болоте и... Дальше, думаю, понятно. прям бугагашеньки. вот это самое, ну конечно, прям в тысячу и миллионы раз интереснее, чем нормальный непринуждённый спор о способах и методах разработки. прям испортил весь срач всю беседу со своими маркетинговыми причиндалами. да отбрось ты маркетинговые причиндалы :) Вы о разных вещах с Сахаватом трындите. О разных типах проектов. Во многих проектах твой UX никому на фиг не упёрся. Ни людям он не нужен, ни экономически не выгоден. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2015, 20:07 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
skyANAда отбрось ты маркетинговые причиндалы :) Вы о разных вещах с Сахаватом трындите. О разных типах проектов. Естественно, совокупляем разные типы проектов в общую методичку skyANAВо многих проектах твой UX никому на фиг не упёрся. Ни людям он не нужен, ни экономически не выгоден. Если приложение обладает пользовательским интерфейсом и должно использоваться обычными пользователями, а узкими специалистами типа сисадминов (хотя и это тоже нифига не так, сисадмины тоже люди), то UX тут ещё как упёрся. Хотя может я мало повидал в этой жизни, и ты бы мог слегонца помочь и дать 1-2 примера приложений или классов приложений, где UX вот реально не упёрся, лишь бы хоть как-то фурычило. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2015, 20:17 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Ну блин! Начал писать миграции руками - а там всё на захардкоденных строках! Ну и кой смысл тужиться во Fluent API с лямбдами и дженериками для выбора типа и его свойств, когда в миграциях всё это прахом идёт. Тут либо во всём проекте нет захардкоденных строк, либо во всём проекте только их и применять - чтобы не запутаться, где что, и не загромождать класс контекста этим многословным флюэнтом. Вот, например, пример миграции из статьи Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Имя сущности включает в себя название схемы данных - dbo. Можно без неё обойтись или нельзя? Я могу через выражения и лямбды получить строковое имя сущности - написал расширяющий метод для этого. Но как получить строку схемы данных при этом ещё, и чтобы точкой было разделено? Т. е. как вот это "dbo.Blogs" получить? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 17:23 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Там в XML-комментах к DropColumn написано, что имя схемы данных опционально и по умолчанию подразумевается "dbo", но я для справки спрашиваю - как получить вот такую строку "dbo.Blogs" без нагромождений самописных расширений с выражениями и рефлексией? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 17:33 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Имя сущности включает в себя название схемы данных - dbo. Можно без неё обойтись или нельзя? Можно. Пиши свои соглашения. Миграции не надо писать руками, кроме некоторых исключительных случаев. Они генерятся. Про соглашения сколько раз ещё повторить? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 18:04 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Имя сущности включает в себя название схемы данных - dbo. Можно без неё обойтись или нельзя? Можно. Пиши свои соглашения. Миграции не надо писать руками, кроме некоторых исключительных случаев. Они генерятся. Про соглашения сколько раз ещё повторить? )) Про свои соглашения забыл помню. ))) А автомиграции в примерах только для простых свойств почему-то применяют. А у меня в свойствах - массивы с разными типами данных, которые сериализуются в строки (nvarchar(max)) и обратно вот так . ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 19:17 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112А автомиграции в примерах только для простых свойств почему-то применяют Ну а в БД какие поля лежат, не простые чтоли? )) Alexey2112А у меня в свойствах - массивы с разными типами данных, которые сериализуются в строки (nvarchar(max)) и обратно вот так . При чём тут сериализация и отражение полей таблиц в поля экземпляра класса? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 07:21 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttМиграции не надо писать руками, кроме некоторых исключительных случаев. Правильно будет так: миграции можно не писать руками только в самых тривиальных случаях, а именно -- для добавления объектов. В остальных случаях -- только руками. А когда миграциями заведует ORM -- это неправильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 13:31 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112А автомиграции в примерах только для простых свойств почему-то применяют Ну а в БД какие поля лежат, не простые чтоли? )) Alexey2112А у меня в свойствах - массивы с разными типами данных, которые сериализуются в строки (nvarchar(max)) и обратно вот так . При чём тут сериализация и отражение полей таблиц в поля экземпляра класса? Ладно, для такого вот "отражения" ты используешь ручные или автомиграции? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 14:20 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
НахлобучА когда миграциями заведует ORM -- это неправильно. ORM не заведует миграциями, если только не включены автомиграции, что непозволительно, конечно, для крупных проектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 14:22 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Ладно, для такого вот "отражения" ты используешь ручные или автомиграции? Я автомиграции вообще не использую ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 14:23 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Ладно, для такого вот "отражения" ты используешь ручные или автомиграции? Я автомиграции вообще не использую Т. е. ты не используешь это hVosttМиграции не надо писать руками, кроме некоторых исключительных случаев. Они генерятся. ?? Или я не понимаю, о чём речь. У меня что-то не генерятся. Я делал всё по этому учебнику. Т. е. создал БД в коде, запульнул её в БД. Потом добавил миграции. Мне создался скрипт миграций на шарпе, который создаёт эту БД. Потом я добавил таблицу InputData с такими вот "отражёнными" полями и связь 1-1 между этой новой таблицей и уже существующей. Написал в консоли "Add-Migration AddInputDataTable" - мне создался класс миграции с абсолютно пустыми методами Up и Down. А где код? Я что, должен руками всё заполнять? Мне обещали, что всё автоматом заполнится. Вот я и спрашиваю, где мои миграции и почему я их должен писать руками? А, у меня стоит AutomaticMigrationsEnabled = false; Если я сделаю тру, то это сделает мне заполнение кода для методов Up и Down автоматически, или автомиграции это нечно другое, а не заполнялка кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 14:55 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Или я не понимаю, о чём речь. У меня что-то не генерятся. Генерится код миграции с помощью команды Add-Migration Migration1 который можно поправить или дополнить. Автомиграции, это когда миграции выполняются полностью без твоего участия и, соответственно, контроля. Alexey2112А, у меня стоит AutomaticMigrationsEnabled = false; Автомиграции отключены, ну )) Alexey2112Если я сделаю тру, то это сделает мне заполнение кода для методов Up и Down автоматически, или автомиграции это нечно другое, а не заполнялка кода? Есть автомиграции, есть ручные миграции. При ручных миграциях код генерится, но ты его можешь исправить, или полностью переписать даже. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 17:00 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Или я не понимаю, о чём речь. У меня что-то не генерятся. Генерится код миграции с помощью команды Add-Migration Migration1 который можно поправить или дополнить. Автомиграции, это когда миграции выполняются полностью без твоего участия и, соответственно, контроля. Я так и сделал, а методы оказались пустыми: Alexey2112Потом я добавил таблицу InputData с такими вот "отражёнными" полями и связь 1-1 между этой новой таблицей и уже существующей. Написал в консоли "Add-Migration AddInputDataTable" - мне создался класс миграции с абсолютно пустыми методами Up и Down. А где код? Я что, должен руками всё заполнять? Мне обещали, что всё автоматом заполнится. Вот я и спрашиваю, где мои миграции и почему я их должен писать руками? Миграции не смогли подхватить мои изменения? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 19:09 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Я так и сделал, а методы оказались пустыми: Надо либо добавить класс InputData в своего наследника DbContext, либо создать и зарегистрировать конфигурацию класса в своём DbContext-е, можно это сделать либо ручками, либо просканировать сборку(и) на предмет конфигураций. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 20:01 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Миграции не смогли подхватить мои изменения? Как ты "добавил таблицу"? Стопудово не добавил поле в свой DbContext ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2015, 20:10 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
MonochromatiqueAlexey2112Миграции не смогли подхватить мои изменения? Как ты "добавил таблицу"? Стопудово не добавил поле в свой DbContext Ага! ))) Что-то сильно много в голове держать надо. Чтобы добавить таблицу со связями, надо: 1) добавить класс таблицы; 2) добавить в эту новую таблицу в и связанные таблицы свойства навигации и ключи; 3) добавить свойство типа DbSet<МояНоваяТаблица> в контекст; 4) если требуется, в OnModelCreating контекста добавить ручные настройки на Fluent API; 5) если требуется, добавить ручные миграции. Ничего не забыл? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 05:18 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Добавил DbSet и получил почти то же, что я и сам написал. Отличия в том, что мне сгенерилось вот что Код: c# 1. 2.
по такой модели Код: c# 1. 2.
Почему? Я-то сам написал вот такую миграцию Код: c# 1. 2.
Почему на наллабл-тип мне не сгенерилась миграция с наллабл констрейнтом? Ведь соглашения же говорят, что наллабл в C# будет и наллабл в БД? Пришлось ручками дописать. Короче, все эти автозаполнения методов Up и Down только для того, чтобы много кода ручками не писать. Весь этот автосгенеренный код всё равно надо пробежать и поправить то тут, то там что-нибудь. Правильно я понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 09:20 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Почему на наллабл-тип мне не сгенерилась миграция с наллабл констрейнтом? c.String() разве не аналогично c.String(nullable: true) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 10:30 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Пришлось ручками дописать. Короче, все эти автозаполнения методов Up и Down только для того, чтобы много кода ручками не писать. Весь этот автосгенеренный код всё равно надо пробежать и поправить то тут, то там что-нибудь. Правильно я понимаю? Это на твоё усмотрение. У меня всё норм получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 10:31 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVostt, кажется, я не так понял эту штуку. Nullable в БД задаётся атрибутом Required в моделях БД в .NET (или его отсутствием). Т. е. это не то же понятие, что и nullable в .NET. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 13:29 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Потому что у меня есть другое свойство в другой модели [Required] public string Name { get; set; } автосгенеренная миграция для неё получилась такая Name = c.String(nullable: false), а в БД это выглядит так Name nvarchar(MAX) allow nulls:нет галочки ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 13:32 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
А подскажите, что сделать, чтобы вернуть в проект первую миграцию, которая БД создаёт? А то я начал руками файлы миграций из менеджера решений удалять, а потом снова пытаюсь создать миграции, а они с пустыми методами Up и Down создаются. Такое ощущение, что эти миграции где-то ещё хранятся и им мои удаления из менеджера решений не указ - в консоли пишется, что эти миграции надо сначала откатить, а потом пересоздать. А я их удалил - нечего откатывать. Или проще новый проект создать, перекопировав все файлы со старого? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 14:07 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112, Информация о миграциях записывается в базу данных, найди там табличку, где хранятся миграции и грохни её. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 15:45 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112, Информация о миграциях записывается в базу данных, найди там табличку, где хранятся миграции и грохни её. Спасибо. Так я прав насчёт этого ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 16:01 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112, ну типа того. только можно переопределить соглашения, и обрабатывать другие атрибуты, кроме Required. в базе данных поле обозначается либо NULL, либо NOT NULL. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2015, 23:48 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Мдааа... А изкоробочные миграции-то не парятся по поводу захардкоденных строк и не юзают рефлексию, выражения и прочие лишние извращения. И вообще, CF как будто заточен на захардкоденные строки. Чтобы всё было по-моему, там надо всё переписать - соглашения, атрибуты, миграции и ещё много страшных слов - всё руками своими переделать... Да ну его на. У меня тоже будут захардкоденные строки. ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 12:44 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Вот Fluent API же нормально сделан - всё типизировано, заделегатено, залямбдено. А миграции как будто из 90-х годов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 12:46 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Мдааа... А изкоробочные миграции-то не парятся по поводу захардкоденных строк и не юзают рефлексию, выражения и прочие лишние извращения. И вообще, CF как будто заточен на захардкоденные строки. Чтобы всё было по-моему, там надо всё переписать - соглашения, атрибуты, миграции и ещё много страшных слов - всё руками своими переделать... Да ну его на. У меня тоже будут захардкоденные строки. ))) Не понял в чём проблема. В строках? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 16:35 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Вот Fluent API же нормально сделан - всё типизировано, заделегатено, залямбдено. А миграции как будто из 90-х годов. Ну так в этом и прелесть, выбирай, что тебе лично удобно. Удобен флюент? Флаг в руки )) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 16:36 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttAlexey2112Вот Fluent API же нормально сделан - всё типизировано, заделегатено, залямбдено. А миграции как будто из 90-х годов. Ну так в этом и прелесть, выбирай, что тебе лично удобно. Удобен флюент? Флаг в руки )) Флюент многословен. Несколько символов атрибута в модели против нескольких строк во флюэнте. Со флюэнтом количество текста, который надо напечатать, увеличивается раз так в пять-десять. Нет, я не хочу флюэнт. Я хочу типизированный выбор с помощью IntelliSence в миграциях. Например, сейчас так Код: c# 1. 2. 3. 4.
А хочу типа такого Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 17:17 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
И да, я не хочу ничего самому писать - переписывать половину EF CF. Почему они сразу не написали всё через рефлексию и выражения с лямбдами, а сделали тупой и топорный АПИ через строки, как в 90-х или какой-нибудь Джаве, прости господи? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 17:18 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112А хочу типа такого Код: c# 1. 2. 3. 4.
Если ты хотя бы на минуточку включишь то место, которое называется мозгом у эволюционировавших приматов, то поймёшь, что это невозможно. Просьба не обижаться. Но это так же тупо, как ставить под сомнение наличие как минимум 3-х ножек у табуретки, такое желание, как ты выразил похоже на желания отпилить у табуретки злосчастные 2 ноги, ведь по идее и одной должно быть достаточно. Тебе помочь, разобраться, почему тут нельзя использовать типизированные лямбда-выражения? Ни при каких обстоятельствах. Ни. При. Каких. ВОобще. Никак. Это невозможно. Хоть призови весь Гугл, Фейсбук и Эппл на помощь. Призови Шойгу и древних индийских шаманов с галюциногенными грибами. Нельзя. Помочь разобраться, ну почему же строки, а не рефлексия? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 17:23 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112И да, я не хочу ничего самому писать - переписывать половину EF CF. Почему они сразу не написали всё через рефлексию и выражения с лямбдами, а сделали тупой и топорный АПИ через строки, как в 90-х или какой-нибудь Джаве, прости господи? Скоро дойдёт ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 17:30 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttПомочь разобраться, ну почему же строки, а не рефлексия? давай ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 17:48 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttТебе помочь, разобраться, почему тут нельзя использовать типизированные лямбда-выражения? Ни при каких обстоятельствах. Ни. При. Каких. ВОобще. Никак. Это невозможно. Хоть призови весь Гугл, Фейсбук и Эппл на помощь. Призови Шойгу и древних индийских шаманов с галюциногенными грибами. Гм, как сказать... Я призову трёх польских студентов и их язык Nemerle. Ну или любой язык с развитым метапрограммированием. Макрос может на этапе компиляции слазить в БД и проверить соответствие типов. (Конечно, в рантайме код всё равно может упасть, если схема БД окажется другая). Пусть не совсем то, но близко. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 18:35 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
petalvikhVosttТебе помочь, разобраться, почему тут нельзя использовать типизированные лямбда-выражения? Ни при каких обстоятельствах. Ни. При. Каких. ВОобще. Никак. Это невозможно. Хоть призови весь Гугл, Фейсбук и Эппл на помощь. Призови Шойгу и древних индийских шаманов с галюциногенными грибами. Гм, как сказать... Я призову трёх польских студентов и их язык Nemerle. Ну или любой язык с развитым метапрограммированием. Макрос может на этапе компиляции слазить в БД и проверить соответствие типов. (Конечно, в рантайме код всё равно может упасть, если схема БД окажется другая). Пусть не совсем то, но близко. Какие лазания в БД в CF? У нас код главнее. У нас БД - это модель на сишарпе. Куда и зачем лазать? Что, нельзя по классам полазать и дать возможность их свойства указывать не строками, а лямбдами? Всё, ребята, приплыли. Щас другие времена настают. Кончились времена исчадий ада - этих ваших DBA, которые, дай им волю, вообще бы все приложения прямо в СУБД и писали на своих чёртовых хранимках. Щас СУБД - робкая обслуга сишарпобояр. Кто там лезет своими грязными похотливыми ручонками в мою БД через свою сраную админку? - Убью нафиг! Теперь только через код и только для благородных донов-программеров. hVosttПомочь разобраться, ну почему же строки, а не рефлексия? Да. Я чёта не вдупляю в упор. И чего ты смайлов понаставил? Какой-то подвох? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 19:51 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRoshVosttПомочь разобраться, ну почему же строки, а не рефлексия? давай Похоже тут у многих проблемы Вопрос на засыпку. Я удаляю сущность, которая в EF мапилась на таблицу. В миграции должна быть прописана инструкция для удаления таблицы. И, конечно, роллбэк для восстановления, при откате миграции. Чё я там должен увидеть с рефлексией? Вопрос второй на засыпку. Я удаляю из сущности свойство, которое в EF мапилось на колонку таблицы. В миграции должна быть прописана инструкция на удаление колонки таблицы, ну и роллбэк. Чё я там должен увидеть с рефлексией? Куда моя лямбда должна указывать? На мифическую куйню из воспалённого больного воображения? В общем, я не ожидал, что всё так плохо... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 19:54 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
petalvikГм, как сказать... Я призову трёх польских студентов и их язык Nemerle. Ну или любой язык с развитым метапрограммированием. Макрос может на этапе компиляции слазить в БД и проверить соответствие типов. (Конечно, в рантайме код всё равно может упасть, если схема БД окажется другая). Пусть не совсем то, но близко. Речь идёт о C#, да и в C# кодогенерацию никто не отменял. Майкрософт этим балуется со времён первых вижуал студий. Но всё равно я не понял, чем тут поможет Nemerle. У меня должен храниться код всех миграций, в разные моменты времени я должен ссылаться на то, чего ещё не существует, или то, чего уже не существует. Каким боком мне тут макросы упадут, я так и не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 19:57 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Что, нельзя по классам полазать и дать возможность их свойства указывать не строками, а лямбдами? Ты мыслишь удивительно плоско Почитай мои комменты выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 19:58 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttViPRosпропущено... давай Похоже тут у многих проблемы Вопрос на засыпку. Я удаляю сущность, которая в EF мапилась на таблицу. В миграции должна быть прописана инструкция для удаления таблицы. И, конечно, роллбэк для восстановления, при откате миграции. Чё я там должен увидеть с рефлексией? Вопрос второй на засыпку. Я удаляю из сущности свойство, которое в EF мапилось на колонку таблицы. В миграции должна быть прописана инструкция на удаление колонки таблицы, ну и роллбэк. Чё я там должен увидеть с рефлексией? Куда моя лямбда должна указывать? На мифическую куйню из воспалённого больного воображения? В общем, я не ожидал, что всё так плохо... да мне пофиг твои "миграции" и ЕФ но ты у себя в программной модели (СФ) удаляешь "сущности и свойства", а не в БД (надеюсь БД не создана для твоей игрушки, а пользуются этой БД разные программы и т.д.), потому как тут уже сказал мальчик новый - даешь лямбды и рефлексию!!! твоя модель СФ - это проекция реальной БД, потому сама идея каких то миграций - ущербность полная ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 01:08 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttУ меня должен храниться код всех миграций, в разные моменты времени я должен ссылаться на то, чего ещё не существует, или то, чего уже не существует. Ты прав... Но ты же понимаешь, что я не могу этого вот так просто признать. Я должен обязательно что-то сказать против, обозвать, в конце концов в МСУ-стайле, ещё что-нибудь. Да и традиции требуют сопротивляться до последнего, до полного маразма. Сейчас, что-нибудь придумаю... А, вот - какого хрена вся история сущностей не хранится в строго типизированном виде? Ну, типа системы контроля версий - все когда-либо созданные сущности хранятся в ней, но мапятся только актуальные. Но при этом сохраняется возмодность указать даже лямбдами на то, что уже не существует в БД, но по-прежнему есть в коде. Насчёт "чего ещё не существует". Так миграции по добавлению новой сущности или свойство уже существующей сущности пищутся после такого добавления. Т. е. рефлексией или выражением по этому уже можно пройтись и лямбдой это дело указать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 01:29 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosно ты у себя в программной модели (СФ) удаляешь "сущности и свойства", а не в БД я удаляю сущности и свойства, это равнозначно удалению таблиц и колонок из БД. чего тут непонятного? с чего ты вообще взял, что БД пользуются разные программы? а если даже и так, то с чего ты взял, что разные программы цепляются к одной БД напрямую? кто тебя архитектуру делать учил? по руками за такое безобразие ещё не били? повезло. ViPRosпотому как тут уже сказал мальчик новый - даешь лямбды и рефлексию!!! не даёшь, я уже объяснил почему. практически на пальцах. ViPRosтвоя модель СФ - это проекция реальной БД, потому сама идея каких то миграций - ущербность полная ты забыл привести доводы. т.е. я глотнул чайку, потому миграции EF -- просто гениальная идея! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 08:34 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Но при этом сохраняется возмодность указать даже лямбдами на то, что уже не существует в БД, но по-прежнему есть в коде. Смысл? Типизация нужна там, где есть риск совершить ошибку, т.е. в процессе реализации алгоритмов, бизнес-логики, во время прикладной разработки. Миграции не программируются, они по большей части генерируются, это просто перманентно сериализуемый прямой набор инструкций, без условий, циклов и мета-процедурно-ориентированных финтов ушами. Для чего там типизация я ни панимать. Alexey2112Насчёт "чего ещё не существует". Так миграции по добавлению новой сущности или свойство уже существующей сущности пищутся после такого добавления. Т. е. рефлексией или выражением по этому уже можно пройтись и лямбдой это дело указать. Ты оперируешь настоящим временем. А теперь представь тысячу миграций и любой выбранный момент времени, для которого существуют прошлое и будущее в контексте миграций. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 08:41 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttМиграции не программируются, они по большей части генерируются Что-то в этом есть... Но править их руками-то позволено всё равно. Ну и плюс, как тут говорили, генерируются только элементарные меграции, а посложнее - уже ручками. Тут-то рефакторинг и прочий треш и всплывают. Вот накопилась у тебя сотня миграций, а потом ты решил поменять название свойства, таблицы, ещё что-то. А у тебя всё захардкодено строками. Полнотекстовый поиск и замена - чреват ошибками из-за ложного срабатывания (где-то названия могут отличаться только суффиксами или префиксами). Т. е. никакой автозамены по всем файлам - только по одной замене за раз - не сильно производительнее, чем вручную искать и заменять. Делать сложные регулярки для таких вещей? - Чёта я взоржал с таких технологий в век рефакторинга на основе строго типизированного анализа кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 13:12 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
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.
вот миграция Код: c# 1. 2.
Всё же, там, похоже, и на основе Required, и на основе самого типа свойства основывается - nullable оно или нет. Т. е. атрибутом Required можно сделать не nullable всякие по природе nullable-типы (типа ссылочных типов). А для всяких чисел, которые по определению не nullable, можно сделать nullable с помощью типа Nullable<T> (int?, double? и т. д.). Вот теперь правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 13:33 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Кстати, а кто как миграции содержит? Ну будет у вас сотня миграций - а как вы их назовёте? Я пока так делаю 201506170934203_TestTable_AddCommentaryProperty Это нормально, или есть способ лучше? А то чувствую, что папка Migrations скоро будет состоять из гиганстского списка миграций, которые упорядочены по времени и только. Или штука в том, что миграций В ПРИНЦИПЕ не должно быть сильно много, поэтому вроде как предполагается, что и проблем по управлению миграциями и их хранению и упорядочиванию не должно возникать? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 13:42 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Всё же, там, похоже, и на основе Required, и на основе самого типа свойства основывается - nullable оно или нет. Т. е. атрибутом Required можно сделать не nullable всякие по природе nullable-типы (типа ссылочных типов). А для всяких чисел, которые по определению не nullable, можно сделать nullable с помощью типа Nullable<T> (int?, double? и т. д.). Вот теперь правильно? Да, всё верно. Alexey2112Кстати, а кто как миграции содержит? Ну будет у вас сотня миграций - а как вы их назовёте? В разных проектах по-разному, где-то уже устоявшаяся система есть, где-то свободная. Ну а мне лично нравится версия X_YY (или X_YY_ZZ для патчей) и всё привязано к версии, которая хорошо описана, например, в вики и содержит все тикеты, а также коммиты в рамках работы над версией/патчем. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 14:41 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttViPRosно ты у себя в программной модели (СФ) удаляешь "сущности и свойства", а не в БД я удаляю сущности и свойства, это равнозначно удалению таблиц и колонок из БД. чего тут непонятного? с чего ты вообще взял, что БД пользуются разные программы? а если даже и так, то с чего ты взял, что разные программы цепляются к одной БД напрямую? кто тебя архитектуру делать учил? по руками за такое безобразие ещё не били? повезло. ViPRosпотому как тут уже сказал мальчик новый - даешь лямбды и рефлексию!!! не даёшь, я уже объяснил почему. практически на пальцах. ViPRosтвоя модель СФ - это проекция реальной БД, потому сама идея каких то миграций - ущербность полная ты забыл привести доводы. т.е. я глотнул чайку, потому миграции EF -- просто гениальная идея! блин, одно и то же поле для какой то цели (взгляда на систему, клиента) существует, а для других нет как может какая та прога удалить это поле? (если конечно эта прога не есть "админка" СУБД) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 16:02 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosблин, одно и то же поле для какой то цели (взгляда на систему, клиента) существует, а для других нет как может какая та прога удалить это поле? (если конечно эта прога не есть "админка" СУБД) то, про что ты говоришь, называется простым и ёмким словом бардак . это не прога, а слой БЛ. прога может либо юзать БЛ, либо обращаться к данным через единый REST/API. даже если я напьюсь до чёртиков, мне не придёт в голову раздавать прямой доступ к БД направо и налево. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 18:23 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttViPRosблин, одно и то же поле для какой то цели (взгляда на систему, клиента) существует, а для других нет как может какая та прога удалить это поле? (если конечно эта прога не есть "админка" СУБД) то, про что ты говоришь, называется простым и ёмким словом бардак . это не прога, а слой БЛ. прога может либо юзать БЛ, либо обращаться к данным через единый REST/API. даже если я напьюсь до чёртиков, мне не придёт в голову раздавать прямой доступ к БД направо и налево. ты просто офигевший мальчик, какие то слои доступа и т.д. - ахинею не неси, кроме твоих игрушек есть и нормальные системы, которые с СУБД работают через АПИ СУБД, а не через твой огрызок для доступа к БД это надо ж блин зомбироваться до такой степени ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 18:36 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosты просто офигевший мальчик, какие то слои доступа и т.д. - ахинею не неси, кроме твоих игрушек есть и нормальные системы, которые с СУБД работают через АПИ СУБД, а не через твой огрызок для доступа к БД унылого бардака в стране хватает. как и ребят, со своей унылой радостью ежедневно большой лопатой разгребать гумно лопатой. это факт. какой ещё нафиг "огрызок"? чё ты несёшь? обкурился чтоле? я даю доступ к данным, именно к тем, которые нужны клиенту, именно в том виде, как они нужны клиенту. и клиент доволен как слон. учитывая, что уже давно есть такие вещи как OData, можно АПИ СУБД своё затолкать в гудок. ViPRosэто надо ж блин зомбироваться до такой степени угу, ты ещё расскажи нам, что лошади -- это лучшее в мире средство передвижение, а самолёты-авто-жд для полных даунов и лохов. эх, зомбированное человечество. лошади и кареты! короче, глупочтей не гавари, да ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 19:54 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
ViPRosесть и нормальные системы вот что удивительно, нормальные системы уже много лет успешно юзают REST/API, при этом клиенты не имеют ни малейшего понятия, как эти данные там храняться, SQL, noSQL или вообще в текстовых файлах разложены, всем плевать, люди бизнес делают, бабки текут рекой, все счастливы и довольны. но нет же. это всё ненормальные системы. нормальные системы не должны быть лёгкими и простыми. они должны быть как большая куча УГ, пипец какими сложными, чтобы отдельные очкарики имели возможность быть незаменимыми и до пенсии получать свою вожделенную зарплату. хотя, ничего против этого не имею. каждому своё. только про "нормальность" систем мне не затирай плз. чай не вчера родился, и не в одной/двух конторках просидел со студенчества. повидал всякого, уж поверь мне. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 20:00 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
hVosttчай не вчера родился, и не в одной/двух конторках просидел со студенчества. повидал всякого, уж поверь мне. Но щас-то ты на нормальном месте - всё по феншую делаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2015, 20:20 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Но щас-то ты на нормальном месте - всё по феншую делаете? всегда есть над чем работать и чему поучиться, идеал недостижим ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2015, 00:33 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
А подскажите насчёт такой ситуации. Вот есть модель со свойством, которое надо представить в БД - коллекция. В БД коллекций нет. Предлагают отобразить коллекцию в строку: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Хочу, чтобы пользователь-программист этого класса не вызывал свойство Values_Internal - оно не должно мозолить ему глаза. Оно только запутывает. Программист не должен и ему не интересно знать, как там внутри модель устроена, зачем нужно два свойства с похожими названиями и какие костыли решают какие проблемы. Вот и хотелось бы скрыть это свойство из выдачи IntelliSense. Как сделать? Ну и стоит ли это делать вообще? Т. е. это нормально, что пользователь класса видит кучу похожих свойств и ему надо лазить внутрь класса или читать документацию на него, чтобы разобраться, какое свойство ему нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 09:32 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
В смысле, что написал я XML-комментарий "For internal use only." для этого свойства. А толку? Лучше бы оно изначально пользователю глаза не мозолило - выкинуть его из выдачи Интеллисенсом вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 09:33 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Нашёл такой костыль http://www.codeproject.com/Tips/828444/Property-Mapping-in-Entity-Framework-Code-First авторThe nonpublic properties must be mapped using the Fluent API configuration. Т. е. только делать свойство приватным, а потом флюэнтом его мапить? Проще никак? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 09:36 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Потому что мапить приватные свойства - то ещё извращение, плюс какие-то ристрикции наваливаются кучей . ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 09:41 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Хочу, чтобы пользователь-программист этого класса не вызывал свойство Values_Internal - оно не должно мозолить ему глаза. Оно только запутывает. Программист не должен и ему не интересно знать, как там внутри модель устроена, зачем нужно два свойства с похожими названиями и какие костыли решают какие проблемы. Вот и хотелось бы скрыть это свойство из выдачи IntelliSense. Как сделать? EditorBrowsableAttribute ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 10:30 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
petalvikAlexey2112Хочу, чтобы пользователь-программист этого класса не вызывал свойство Values_Internal - оно не должно мозолить ему глаза. Оно только запутывает. Программист не должен и ему не интересно знать, как там внутри модель устроена, зачем нужно два свойства с похожими названиями и какие костыли решают какие проблемы. Вот и хотелось бы скрыть это свойство из выдачи IntelliSense. Как сделать? EditorBrowsableAttribute Во, спасибо! Это как раз то, что нужно, чтобы не заморачиться со всякими самописными конвенциями, выражениями и прочими флюэнтами. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 11:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Ляя! Я уже начинаю ненавидеть этот code first! Фак зис щит! Каскадное удаление - это так же нужно и обычно, как и первичный и внешний ключи. Почему каскадное удаление не сделать без многословного флюэнта? Почему вообще логику построения БД в code first надо размызывать не только по классам POCO, но и ещё по всяким методам всяких контекстов, самописных конвенций и прочих поведений даже в простых случаях ?! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 13:59 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Тэкс... Вот ситуация как по ссылке - отношение 1-1..0. Если я поставлю первичному ключу (который одновременно и внешний) в таблице-потомке атрибут Required, то каскадное удаление будет работать? Я думал, что раз свойство обозначено как первичный ключ, то оно Required по умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 14:04 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Alexey2112Тэкс... Вот ситуация как по ссылке - отношение 1-1..0. Если я поставлю первичному ключу (который одновременно и внешний) в таблице-потомке атрибут Required, то каскадное удаление будет работать? Я думал, что раз свойство обозначено как первичный ключ, то оно Required по умолчанию. Правда, после Required это будет уже не 1-1..0, а 1-1. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 14:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
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. Помню только, что когда флюэнтом добавлял - каскадное удаление работало. А когда на атрибутах переделал - фигвам. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 14:33 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Удаляю запись, кстати, так Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 14:34 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Блин, похоже, без флюэнта каскадное удаление не сделать. Хвост, ты как каскадное удаление делаешь? Своё соглашение пишешь, или у тебя и так всё работает? Вон, на SO у людей не работает без флюэнта, как и у меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 14:44 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Было Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Стало (добавил атрибут Required, удалил флюэнт-вставку Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Получилась миграция Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Эти в EF CF совсем там упоролись, чтоли? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 15:15 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Короче, без флюэнта всё через жопу даже в простых случаях. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 15:16 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Ну, так и есть. Думал, это я с миграциями напутал. Создал новую БД с упрощённой схемой - только две таблицы со связью 1-1..0. Ну и без флюэнта связь без каскадоного удаления создалась даже по такому сочетанию атрибутов на внешнем ключе Код: c# 1.
А с флюэнтом создалось как надо, вне зависимости от наличия/отсутствия атрибута Required (получается, что он тут лишний вообще). Вобщем, для себя сделал такой вывод - без Fluent API невозможно сделать даже относительно простую базу данных в EF CF. Даже каскадное правило удаления для отношений 1-1 или 1-1..0 атрибутами и конвенциями из коробки не сделать. Так что не знаю, чего там Хвост одними изкоробочными вещами обходится. Ну либо он просто не делал БД с такими отношениями и с каскадными удаления в CF и без флюэнта. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 17:35 |
|
Покритикуйте EF code-first
|
|||
---|---|---|---|
#18+
Эх, никто сюда не заходит... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2015, 19:37 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1349537]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
184ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 403ms |
0 / 0 |