|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttМСУпропущено... За реализацию List<T> в модели - вообще растягивать лошадьми на базаре. Да не только за List<T>, но и за IList<T> тоже. Уже доводилось не раз за это по рукам подованом хлестать.Они нарушили какое-то твоё требование? Требование было зафиксировано в письменном виде? А то смотри, как бы в ответ не прилетело. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:07 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КНу и накой мне эти преобразования? Чтобы что? Ты инженер или где? Чтобы не решать проблемы через задницу. А ты именно так проблему и решаешь, через жопу. Если для тебя это не очевидно, даже когда я тебе конкретный код с решением дал, то это уже клиника. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:16 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КОни нарушили какое-то твоё требование? Требование было зафиксировано в письменном виде? А то смотри, как бы в ответ не прилетело. :-) Ты упоротый чтоли, я не понимаю? Если ты к доктору с насморком придёшь, а доктор тебе предложит вскрыть тебе череп, ты как на это отреагируешь? Или ты всерьёз не понимаешь, зачем существуют принятые Coding conventions ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:19 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttАлексей КНу и накой мне эти преобразования? Чтобы что? Ты инженер или где? Чтобы не решать проблемы через задницу . А ты именно так проблему и решаешь, через жопу. Если для тебя это не очевидно, даже когда я тебе конкретный код с решением дал, то это уже клиника.Какую проблему? Нет никакой проблемы, и решать ничего не надо. Всё работает. Ну или это, вноси список проблем в студию, будем смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:23 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttАлексей КОни нарушили какое-то твоё требование? Требование было зафиксировано в письменном виде? А то смотри, как бы в ответ не прилетело. :-) Ты упоротый чтоли, я не понимаю? Если ты к доктору с насморком придёшь, а доктор тебе предложит вскрыть тебе череп, ты как на это отреагируешь? Или ты всерьёз не понимаешь, зачем существуют принятые Coding conventions ?Где там написано, что EF ассоциации нельзя делать List<T> ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:24 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttИ чего ты вообще лезешь со своими правилами? У тебя code-first, у меня database-first. Чуешь разницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:26 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КГде там написано, что EF ассоциации нельзя делать List<T> ? List<T> вообще нельзя выставлять наружу. IList<T> нельзя использовать для навигационного свойства, так как это обман -- навигационное свойство предоставляет доступ к несортированной коллекции, следовательно доступ по индексу, который предоставляет IList<T> это наипалово. тебя чем-то ICollection<T> обидел, я не понимаю? Чё за десткий сад-то не пойму? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:29 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КИ чего ты вообще лезешь со своими правилами? У тебя code-first, у меня database-first. Чуешь разницу? Да пофигу вообще, чё там у тебя, не важно CF и DF, я же показал тебе как задачка решается. Ты просто этого не знал, мог бы просто признать, а не мазаться как школьник. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:31 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttАлексей КГде там написано, что EF ассоциации нельзя делать List<T> ? List<T> вообще нельзя выставлять наружу. IList<T> нельзя использовать для навигационного свойства, так как это обман -- навигационное свойство предоставляет доступ к несортированной коллекции, следовательно доступ по индексу, который предоставляет IList<T> это наипалово. тебя чем-то ICollection<T> обидел, я не понимаю? Чё за десткий сад-то не пойму?Пестец у вас уровень проблем, я куею... Мне бы ваши проблемы... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 10:43 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КПестец у вас уровень проблем, я куею... Мне бы ваши проблемы... Большое путешествие начинается с маленького шага. Если ты умудряешься налажать в таких мелочах, то легко представить во что это в итоге выливается. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 11:06 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttАлексей КПестец у вас уровень проблем, я куею... Мне бы ваши проблемы... Большое путешествие начинается с маленького шага. Если ты умудряешься налажать в таких мелочах, то легко представить во что это в итоге выливается.Мне давно фиолетовы мелочи, которые не приносят вреда. Я давно не претендую на абсолютную правильность, видимо, возраст уже не тот. По пунктам: 1. Мне фиолетово, что сгенерированные классы начинаются с маленькой буквы. 2. Мне ничем не мешает List<T> в ассоциациях. Я даже не помню, почему он там, давно это было, этому кодогенератору уже не один год, он давно используется в реальных проектах со 100+ таблиц в БД. Работает - значит претензий нет. 3. Мне нравится такой принцип именования ассоциаций. Считаю его наиболее удобным. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 11:19 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей К1. Мне фиолетово, что сгенерированные классы начинаются с маленькой буквы. Абсолютно не подразумевается, что код кроме тебя лично кто-то ещё когда-то будет поддерживать? Т.е. это либо творение закрытое чисто для себя, либо для конторы, в которой у тебя контракт до пенсии? Тогда да, фиолетово как ты там пишешь. Вообще наплевать. Алексей К2. Мне ничем не мешает List<T> в ассоциациях. Я даже не помню, почему он там, давно это было, этому кодогенератору уже не один год, он давно используется в реальных проектах со 100+ таблиц в БД. Работает - значит претензий нет. Опять «мне». Тоже самое, если закрыто и для себя, то пофигу. Алексей К3. Мне нравится такой принцип именования ассоциаций. Считаю его наиболее удобным. Аналогично. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 11:44 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей Квидимо, возраст уже не тот т.е. говнокодить официально разрешено либо школоте, либо пенсионерам? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 11:45 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttАлексей К1. Мне фиолетово, что сгенерированные классы начинаются с маленькой буквы. Абсолютно не подразумевается, что код кроме тебя лично кто-то ещё когда-то будет поддерживать? Т.е. это либо творение закрытое чисто для себя, либо для конторы, в которой у тебя контракт до пенсии? Тогда да, фиолетово как ты там пишешь. Вообще наплевать.Что, если классы датаконтекста именуются с маленькой буквы, сторонний программист ничего не поймёт? Малый бред... Будь ты инженером, ты бы спросил: "А может лучше таблицы в БД именовать с большой буквы?". Не исключено, что я бы согласился. hVosttАлексей К2. Мне ничем не мешает List<T> в ассоциациях. Я даже не помню, почему он там, давно это было, этому кодогенератору уже не один год, он давно используется в реальных проектах со 100+ таблиц в БД. Работает - значит претензий нет. Опять «мне» . Тоже самое, если закрыто и для себя, то пофигу. Алексей К3. Мне нравится такой принцип именования ассоциаций. Считаю его наиболее удобным. Аналогично.А я ничего не пропагандирую, я не стараюсь нести культуру в массы, это занятие неблагодарное. Я лишь тихо угораю с хомячков, начитавшихся всякой ереси с хабров, википедий и MSDN-ов, пытающихся выдавать этот бред за абсолютную истину. Ты хоть понимаешь, зачем и когда удобно использовать разный регистр букв при именовании? Понимаешь, почему в JS члены классов именуют с маленькой буквы, а в C# с большой? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 11:55 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КЧто, если классы датаконтекста именуются с маленькой буквы, сторонний программист ничего не поймёт? Малый бред... В этом нет никакого смысла, а вред имеется, при чём существенный. Единый стиль значит очень многое, ты этого не понимаешь, видимо, так как не работал никогда в команде. Я раньше, когда занимался разработкой единолично тоже выстраивал свои стили, делал как лично мне логичнее и удобнее. Потом, когда стал работать в команде, когда мне перепало несколько чужих проектов на доработку и сопровождение отчётливо понял, насколько важен единый общепринятый стиль программирования. Существуют общепринятые рекомендации, StyleCop, надо их придерживаться. Алексей КБудь ты инженером, ты бы спросил: "А может лучше таблицы в БД именовать с большой буквы?". Не исключено, что я бы согласился. Тут всё дело в том, что наименование классов, полей, навигационный свойств никак не коррелируют с наименованием в БД. У нас одни и теже классы маппятся в разных СУБД по-разному. В MS SQL аналогично наименованию в C#, но в Postgres, всё с маленькой буквы и с подчёркиваниеми, это настраивается с помощью механизма соглашений. Не вижу проблемы. Алексей КА я ничего не пропагандирую, я не стараюсь нести культуру в массы, это занятие неблагодарное. Я лишь тихо угораю с хомячков, начитавшихся всякой ереси с хабров, википедий и MSDN-ов, пытающихся выдавать этот бред за абсолютную истину. Ты слишком сильно обобщаешь. Алексей КТы хоть понимаешь, зачем и когда удобно использовать разный регистр букв при именовании? Понимаешь, почему в JS члены классов именуют с маленькой буквы, а в C# с большой? Для каждого языка программирования выработан годами общепринятый стиль. Ты же плюёшь на это, при чём ладно бы по-другому было никак, можно было бы сделать исключение. Но в твоём случае, это нафиг не требуется, кроме соглашений, имена таблиц и полей можно указывать через атрибуты, да много как можно. Подгонять наименование классов к БД -- это самый глупый и тупой способ из всех возможных. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 13:12 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttАлексей КЧто, если классы датаконтекста именуются с маленькой буквы, сторонний программист ничего не поймёт? Малый бред... В этом нет никакого смысла, а вред имеется, при чём существенный. Единый стиль значит очень многое, ты этого не понимаешь, видимо, так как не работал никогда в команде. Я раньше, когда занимался разработкой единолично тоже выстраивал свои стили, делал как лично мне логичнее и удобнее. Потом, когда стал работать в команде, когда мне перепало несколько чужих проектов на доработку и сопровождение отчётливо понял, насколько важен единый общепринятый стиль программирования. Существуют общепринятые рекомендации , StyleCop, надо их придерживаться.Да я согласен с этой рекомендацией. Я всеми руками "за" стандарты по именованию и форматированию кода. Но в данном случае рекомендация требует дополнительных движений, которые того не стоят, не больше и не меньше. hVosttАлексей КБудь ты инженером, ты бы спросил: "А может лучше таблицы в БД именовать с большой буквы?". Не исключено, что я бы согласился. Тут всё дело в том, что наименование классов, полей, навигационный свойств никак не коррелируют с наименованием в БД. У нас одни и теже классы маппятся в разных СУБД по-разному. В MS SQL аналогично наименованию в C#, но в Postgres, всё с маленькой буквы и с подчёркиваниеми, это настраивается с помощью механизма соглашений. Не вижу проблемы.Ну у тебя так, у меня в текущих проектах по-другому. И что с того? Я же не говорю, что ты делаешь неправильно. Тебе в твоём случае виднее, и мне тоже. hVosttАлексей КА я ничего не пропагандирую, я не стараюсь нести культуру в массы, это занятие неблагодарное. Я лишь тихо угораю с хомячков, начитавшихся всякой ереси с хабров, википедий и MSDN-ов, пытающихся выдавать этот бред за абсолютную истину. Ты слишком сильно обобщаешь.Я удивляюсь. :-) hVosttАлексей КТы хоть понимаешь, зачем и когда удобно использовать разный регистр букв при именовании? Понимаешь, почему в JS члены классов именуют с маленькой буквы, а в C# с большой? Для каждого языка программирования выработан годами общепринятый стиль. Ты же плюёшь на это, при чём ладно бы по-другому было никак, можно было бы сделать исключение. Но в твоём случае, это нафиг не требуется, кроме соглашений, имена таблиц и полей можно указывать через атрибуты, да много как можно. Подгонять наименование классов к БД -- это самый глупый и тупой способ из всех возможных.Все правила придумываются не просто так, а зачем-нибудь, например: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Использование разного регистра при именовании членов класса и локальных переменных позволяет: 1. Не требуется придумывать разные имена идентификаторам, описывающим что-то одно из предметной области. 2. Не требуется использование this при обращении к членам класса. Я считаю это удобным , поэтому придерживаюсь такого правила, а не потому, что боюсь задеть чьи-то эстетические чувства . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 13:28 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КНу у тебя так, у меня в текущих проектах по-другому. И что с того? Я же не говорю, что ты делаешь неправильно. Тебе в твоём случае виднее, и мне тоже. Ок. Давай с другой стороны посмотрим. Надо будет переезжать на другую СУБД, ты ручками все классы будешь переписывать? Я так понимаю, у тебя должно быть 1:1 совпадение имён с учётом регистра Хотя вместо этого надо написать один раз, всего одно соглашение, и применить его ко всем классам. Даже если их будет +100500. Вот и не понимаю твоих телодвижений. Алексей КИспользование разного регистра при именовании членов класса и локальных переменных позволяет: 1. Не требуется придумывать разные имена идентификаторам, описывающим что-то одно из предметной области. 2. Не требуется использование this при обращении к членам класса. Я считаю это удобным , поэтому придерживаюсь такого правила, а не потому, что боюсь задеть чьи-то эстетические чувства . Ну так обычно и делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 15:24 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttАлексей КНу у тебя так, у меня в текущих проектах по-другому. И что с того? Я же не говорю, что ты делаешь неправильно. Тебе в твоём случае виднее, и мне тоже. Ок. Давай с другой стороны посмотрим. Надо будет переезжать на другую СУБД,Мне не придётся. Мои заказчики не на столько упороты. hVosttты ручками все классы будешь переписывать? Я так понимаю, у тебя должно быть 1:1 совпадение имён с учётом регистра Хотя вместо этого надо написать один раз, всего одно соглашение, и применить его ко всем классам. Даже если их будет +100500. Вот и не понимаю твоих телодвижений. У меня самописный кодогенератор, как ты думаешь, я смогу реализовать любое соглашение? :-) Я это могу сделать даже без переписывания кодогенератора. Он реализован достаточно гибко: 1. Можно написать провайдера под любую СУБД. 2. Можно генерировать контекст под любой ORM, не только EF. 3. На уровне T4 можно преобразовывать метаданные, полученные из СУБД, тем самым реализовать любое соглашение. hVosttАлексей КИспользование разного регистра при именовании членов класса и локальных переменных позволяет: 1. Не требуется придумывать разные имена идентификаторам, описывающим что-то одно из предметной области. 2. Не требуется использование this при обращении к членам класса. Я считаю это удобным , поэтому придерживаюсь такого правила, а не потому, что боюсь задеть чьи-то эстетические чувства . Ну так обычно и делается.Я знаю, поэтому и привёл этот распространённый пример. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 15:50 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVostt Подгонять наименование классов к БД -- это самый глупый и тупой способ из всех возможных. +1, я просто шокирован тем, что Леша пишет, это эпик фэйл... Алексей, когда ты уже поймёшь, что база данных и модель - разные вещи? Модель - это бизнесовая терминология, её конверсия никоим образом не должна зависеть от кривожопых дб девелоперов. Особенно это касается, когда у нас несколько моделей в задаче, которые используют различные схемы данных. Представляешь, какая каша может получиться? Я тебя не собираюсь уговаривать писать правильно, но то, что я увидел - настоящий адский кал. И ему место на свалке. Именно дизайнер нужен для того, чтобы не было подобного безобразия. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 16:05 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttМСУпропущено... За реализацию List<T> в модели - вообще растягивать лошадьми на базаре. Да не только за List<T>, но и за IList<T> тоже. Уже доводилось не раз за это по рукам подованом хлестать. В целом согласен. ICollection или IE. IList для лентяев. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 16:08 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КУ меня самописный кодогенератор, как ты думаешь, я смогу реализовать любое соглашение? :-) Я думаю, что не ошибусь, если подвергну сомнению слово «любое», ибо для того, чтобы можно было реализовать «любое» соглашение, надо изучить возможности инструмента. А на это у тебя банально, интеллектуальных способностей не хватает (или времени, так как кодогенератором был занят), ибо если бы ты мог, то обнаружил бы замечательные атрибуты ColumnAttribute и TableAttribute , позволяющие задавать абсолютно любой нейминг для маппинга, не каверкая стиль кода в угоду своей безграмотности. Эх... молодость. Помню, мы по молодости тоже вкорячивали самописные кодогенераторы и так по-детски радовались: ниичегооо себе! сплошная магия — из базы создаются классы! опупеть! гениально! Как хорошо, что повзрослели, и больше это тупой фигнёй не страдаем Алексей К1. Можно написать провайдера под любую СУБД. 2. Можно генерировать контекст под любой ORM, не только EF. 3. На уровне T4 можно преобразовывать метаданные, полученные из СУБД, тем самым реализовать любое соглашение. Детский и очень наивный подход, который проходит в быту своей юности каждый второй джуниор. Давно уже пора из этих пелёнок вырасти, и решать задачи, а не пилить кодогенераторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 16:24 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
МСУhVostt Подгонять наименование классов к БД -- это самый глупый и тупой способ из всех возможных. +1, я просто шокирован тем, что Леша пишет, это эпик фэйл...В прошлый раз ты тоже был шокирован тем, что пишет Лёша про слой Expression + IQueryable внутри репозитариев, а теперь тебя от ОДаты за уши не оттащишь. Я пророк, верь мне! МСУАлексей, когда ты уже поймёшь, что база данных и модель - разные вещи? Модель - это бизнесовая терминология, её конверсия никоим образом не должна зависеть от кривожопых дб девелоперов. Особенно это касается, когда у нас несколько моделей в задаче, которые используют различные схемы данных. Представляешь, какая каша может получиться?EF-контекст это DAL в чистом виде, C# обёртка вокруг БД. Модель строится поверх него. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 16:30 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Сидеть изобретать велосипед - это почётно. Если других задач нету P.S. Вот за что я люблю дизайнер. В нем можно быстро и легко править модель под себя исходя из бизнесовых обозначений. В случае с Code First такой возможности нет и приходится руками упорно долбить модель в коде. Если в EF7 не сделают дизайнер, ну буду долбать в коде, что ж еще остается. Но только нужно быть реально упоротым разработчиком продукта (EF), чтобы похерить дизайнер. Возвращаемся к унылому NHibernate? Но даже и в нем есть дизайнер, правда в виде отдельной платной поставки. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 16:31 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
Алексей КМСУпропущено... +1, я просто шокирован тем, что Леша пишет, это эпик фэйл...В прошлый раз ты тоже был шокирован тем, что пишет Лёша про слой Expression + IQueryable внутри репозитариев, а теперь тебя от ОДаты за уши не оттащишь. Я пророк, верь мне! Опять ты путаешь теплое с мягким :) Репозиторий как и сейчас у меня не отдает никаких IQueryable. Репозиторий - это обвязка над сгенеренным OData клиентом. Ты реально так ничего и не понял? )) Алексей КEF-контекст это DAL в чистом виде, C# обёртка вокруг БД. Модель строится поверх него. 1. EF контекст - это не просто DAL, это полноценная доменная модель http://www.design-pattern.ru/patterns/domain-model.html 2. Эта модель живьём используется в свое бизнес логики. P.S. Зачем мне строить модель над моделью? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 16:37 |
|
c# EF4 запрос по имени таблицы
|
|||
---|---|---|---|
#18+
hVosttТы сначала ознакомься, потом критикуй. 1. Метаданные , используемые при генерации. 2. Сгенерированное . А потом реши, нужно тут говорить про TableAttribute / ColumnAttribute, или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2014, 16:37 |
|
|
start [/forum/topic.php?fid=17&startmsg=38821059&tid=1349671]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
154ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 275ms |
0 / 0 |