|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Привет всем! Работаю с базой данных MS SQL при помощи EF database first, слышал про то, что есть и ещё один подход code first, слышал много хорошего))) Очень хочеться перейти на него уж больно он разрекламирован, и кажеться более удобным для меня. Но пержде чем это сделать ни как не магу найти ответы на интересующие меня вопросы 1- что же быстрее работает database first или code first? у какого подхода производительность больше? 2- читал что есть некоторая проблема в случае code first, что если необходимо поменять схему бд, добавить или изменить поле, то просто на просто дропаеться вся бд и пересоздается, есть ли такое и как с этим боряться? спасибо) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2013, 16:25 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
yardie, 1) у обоих подходов одинаковая производительность; 2) читай про migrations ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2013, 16:55 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
yardie, Прежде чем впрягаться во все тяжкие. Вас чем именно не устраивает database first? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2013, 23:25 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
lbppbyardie, Прежде чем впрягаться во все тяжкие. Вас чем именно не устраивает database first? Я просто хочу уйти от тех времен когда мне постоянно приходилось лезть в бд, писать скрипты и прочее, хочу создавать, изменять и удалять таблицы более привычным мне C#. Такой подход позволяет очень сильно сократить время разработки на начальном этапе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2013, 13:05 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
yardielbppbyardie, Прежде чем впрягаться во все тяжкие. Вас чем именно не устраивает database first? Я просто хочу уйти от тех времен когда мне постоянно приходилось лезть в бд, писать скрипты и прочее, хочу создавать, изменять и удалять таблицы более привычным мне C#. Такой подход позволяет очень сильно сократить время разработки на начальном этапе. Database First и встроенный дизайнер как ни на есть лучшим образом, за исключением некоторых тонкостей (Code First их впрочем не решает), позволяют проектировать базу и ни какие скрипты писать не нужно. Более того, все необходимые классы также создаются автоматически. Более того, Database First позволяет легко обновлять модель из базы, если такое нужно в последствии, а также легко и удобно работать с Stored Proceudres и Views. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2013, 14:15 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
lbppb, Спасибо, поизучаю database first по подробнее, вполне вероятно что, что-то недоглядел. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2013, 14:56 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Тогда почему МС активно двигает code-first в массы? Вообще, переход на C# в проектирование БД, в проектирование инсталляторов и т. д. считаю хорошей затеей. Может быть, наконец-то разработчику не надо будет знать целую кучу несовместимых и непохожих языков (C#, SQL, T-SQL, чего-то там в сборщике установщиков Windows Installer или набор тегов XML в WiX), чтобы делать продукты даже не для кроссплатформы, а для одной платформы, или, лучше сказать, для платформ одного вендора (МС). Почему пихать javascript везде, который гораздо хуже подходит для разработки, можно, а C# - нет? Что будет с таблицами связей при подходе code-first? Неужели их занесут в красную книгу и разработчики БД на C# забудут о их существовании? На мой взгляд, таблицы связей в проектировании БД выглядят как жирный такой и заметный костыль. То, для чего C# использует просто коллекций сущностей внутри других сущности, SQL должен придумывать новую сущность (каждая таблица связей - такая вполне себе новая сущность), нарушая принцип Оккама. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 14:10 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Alexey2112Вообще, переход на C# в проектирование БД, в проектирование инсталляторов и т. д. считаю хорошей затеей. Может быть, наконец-то разработчику не надо будет знать целую кучу несовместимых и непохожих языков (C#, SQL, T-SQL, чего-то там в сборщике установщиков Windows Installer или набор тегов XML в WiX), чтобы делать продукты даже не для кроссплатформы, а для одной платформы, или, лучше сказать, для платформ одного вендора (МС). Можно ещё добавить, что запросы к БД уже нормальные люди пишут на C# (LINQ). Итого имеем: - разработка приложений (мобильных, десктопных, серверных) - C# - запросы к БД - C# (LINQ) - разработка инсталляторов - C# (WiX#) - игры, трёхмерная графика - C# (Unity3D, SlimDX, SharpDX) - микроконтроллеры, интернет вещей - C# (ардуины и прочие) в будущем: - разработка БД - C# (EF code-first) - веб-разработка - C# (Silverlight 2, web-WPF) - виртуальная реальность - C# (Hololens API) А? Ну? Чё? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 14:33 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Alexey2112- микроконтроллеры, интернет вещей - C# (ардуины и прочие) Забыл про интелловские low-power x86 процессоры и Windows 10 IoT. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 14:34 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Одназначно Code first. В EF7 уберут Database first по моему. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 01:36 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
"code first" - не правильное название. надо было назвать "сделали нормальную ОРМ". миграции при групповой разработке, когда у каждого своя тестовая БД, в том или ином виде, всегда были, есть, будут (и связанный с этим геморой, независимо от ОРМ или её отсутствия). DB-first - это теперь лучше забыть ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 12:36 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
kmaw, было модель first - забили, так как не вытянули ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 14:28 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
что дб что код ферст- все это жесткий хардкод а в модель ф можно было без кода обойтись (вернее код был бы в динамике) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 14:30 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
ViPRosкод ферст это обычная нормальная ОРМ, какой стал EF ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 14:33 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
kmaw, ну я и говорю, что не вытянули а ведь было в начале CSDL, а не код ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 14:34 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
ViPRosчто дб что код ферст- все это жесткий хардкод код фёрст -- норм. никакого хардкода, сразу решаешь задачи. ViPRosа в модель ф можно было без кода обойтись (вернее код был бы в динамике) не снискало за десятилетия этот динамик популярности... унылые сложные, не тестируемые, глючные решения, нафиг не упали. как кодили с типизированной моделью, так и кодят, и будут кодить. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 17:11 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
kmawViPRosкод ферст это обычная нормальная ОРМ, какой стал EF ya ya ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 17:12 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
hVostt, чей то я не видел 10летиями кто динамил, попытки и ляля видел ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 18:35 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
ViPRoshVostt, чей то я не видел 10летиями кто динамил, попытки и ляля видел ну по логике вещей, уже давно должно было выстрелить что-то типа ВИПРОСа и захватить рынок. но либо все такие тупые в этом мире, пипец тупари, от Майкрософт — стадо бездарностей, до Оракла — вообще обезьяны... ну или нахрен никому не упало :) выбирай, что тебе по душе. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2015, 23:38 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
hVostt, есть 3-е после такого дальнейшее обновление "технологий" никто не поймет :) реально не нужны толпы "программистов" и т.д. экономические вопросы ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 02:33 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
ViPRoshVostt, есть 3-е после такого дальнейшее обновление "технологий" никто не поймет :) реально не нужны толпы "программистов" и т.д. экономические вопросы вопросом изобретения серебряной пули занимаюс я, подаван лично я вижу, что применение подхода описания метамодели данных, вместо "хардкодного" программирования — это качественный шаг вперёд, по крайне мере для типовых задач энтерпрайза. вот только вменяемой реализации подобного я не встречал. всё что видел -- писец какое сложное в применении, монструозное, неповоротливое, и самое главное -- мееееееееееееееееееееееееееееедленное. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 06:36 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Артем GОдназначно Code first. В EF7 уберут Database first по моему. .. в EF7 это (DatabaseFirst) теперь выполняется командой dnx ef dbcontext scaffold .. и вполне себе работает под Виндой ... вот под Linux-ом иль пока еще лыжи не едут, иль я сам понимаете какой - но не выпиливается .. Хотя сам проект (мигрированный WebApi) билдится и работает ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 14:14 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
hVosttвот только вменяемой реализации подобного я не встречал. всё что видел -- писец какое сложное в применении, монструозное, неповоротливое, и самое главное -- мееееееееееееееееееееееееееееедленное. это все не так, во всяком случае не должно быть так интерпретация модели налету не такая дорогая операция, особенно если хорошо продумано кеширование результатов интерпретации ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 15:43 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
ViPRosэто все не так, во всяком случае не должно быть так интерпретация модели налету не такая дорогая операция, особенно если хорошо продумано кеширование результатов интерпретации в теории и на простых задачах ок. сам делал и предпринимал попытки реализации оного. в реале, например, при интеграции в компанию уровня Газпром (пускай, регионального), это хренобаза (не моя, а естественно большой и уважаемой компании) тормозит так, что сотрудники страдают от переизбытка чая в огранизме, так как приходится себя чем-то занять периодически, пока какой-то воркфлоу отрабатывает. пока что пришёл к выводу, что нужен компромисс: гибрид, где часть системы выполнена на метамодели (где это реально уместно), в основном тупые реестры без сложных обработок, отчётов, кубов. а боевая лошадка по старинке. и это работает довольно хорошо. вот сейчас именно такой подход применяется по моей инициативе, пока полёт нормальный. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 21:09 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
hVostt, почему большая база? что там содержится? скорее всего неправильная метамодель все эти одномерные амебные ер, юмл и т.д. не являются инструментом метамоделирования ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 21:25 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
а всякмие бпмн тем более ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 21:26 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
на мета уровне Газпром ничем не отличается от мебельной фабрики ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 21:27 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
ViPRosпочему большая база? что там содержится? всё. 100% динамик. все макротипы, инфотипы и прочее описывается через UI, задаются связи между ними, наборы полей, типов, правил, валидации, формы для КРУДов, гридов, поисковые конфигурации, логика.. в воркфлоу пишутся скрипты, сохраняются в базе, со своим компилятором, котролем версий, даже с какими-то тестами интеграционными типа. диаграммы всякие, ганта херанта, деревья, периметр доступа, права, всё в общем. полный фарш. всё делается через конфигурацию. и хранится всё в БД. и всё это писец как еле шевелится. там уже и горизонтально всё замасштабировали, и вертикально, сколька ж надо этой прожорливой падле. сотрудники сквозь зубы матерятся. зло. бабла вложено немеряно. куда-то в сторону деться - куй, там инфы как конь наёб, всё там. все приказы, договора, платёжки, все документы, все проектные документации, истории согласования, миллиарды записей. жопа короче. в БД это выглядит ещё хуже. любой дба-шник адекватный после увиденного должен немедленно нажраться до чёртиков, чтобы это забыть и не вспоминать. это только в теории и на простом моделировании всё офигенно круто. но в реале -- жопень. и вот почему сегодня до сих пор адски популярна заказная разработка под прикладуху. даже с нуля, оно выгодней получается и ровно то, что нужно. без шелухи. и, главное, быстро! очень, мегабыстро. без приседаний в припляску с бубном и чёртом подмышкой. нафига эти приседания бизнесу упали? я вот незнаю. ViPRosвсе эти одномерные амебные ер, юмл и т.д. не являются инструментом метамоделирования я не об этом, это уже инструменты аналитики. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 21:55 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
ViPRosна мета уровне Газпром ничем не отличается от мебельной фабрики например, одно из зданий Газпрома (дочки) высотой 30 этажей вверх. это ИТР, руководство и обслуга. и все они -- пользователи. а мебельная фабрика эт чо? и сколько ж там бизнес-процессов? а сколько данных? сравнил блин муху с тиранозавром. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 21:57 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
hVostt, ну не знаю, система, которую ты описал с виду спроектировано правильно, а как реализовано фиг знает ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 22:02 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
хотя CRUDы не неправильно возможно из за этого тормозит и скорее всего еще и-за воркфлоу (кто знает на каком уровне там воркфлоу работает, на уровне DSLов или просто прогят люди всякую фигню на ЯВУ и мимо этих CRUDов коннектятся к провайдерам :) (видал такое) вощем ,это надо видеть и проанализировать ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 22:11 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
hVosttViPRosна мета уровне Газпром ничем не отличается от мебельной фабрики например, одно из зданий Газпрома (дочки) высотой 30 этажей вверх. это ИТР, руководство и обслуга. и все они -- пользователи. а мебельная фабрика эт чо? и сколько ж там бизнес-процессов? а сколько данных? сравнил блин муху с тиранозавром. да пофиг сколько там Сотрудников и Этажей:) метамодель одна кончено количество данных и пользователей большая проблем, но она большая везде, а не только в конфигурируемой проге ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2015, 22:13 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Все это оч здорово но один единственный вопрос. У меня есть ГРОМАДНАЯ БД, 90% времени работы сводится к выборке сущностей из нее (созданные и наполненные в ней таблицы существуют десяток лет) и обработке уже готовых ХП которые оптимизированы оч тонко(там по неск тыс строк запрос). Я был оч рад, когда можно было получить все это с помощью DataBase First. И что же мне делать теперь когда в EF7 решили избавиться от этой "ненужной" составляющей. Есть смысл осваивать CodeFirst если моя работа происходит в вышеупомянутом режиме? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2015, 11:26 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Артем G В EF7 уберут Database first по моему.сволочи! (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2015, 11:32 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
AntonariyАртем G В EF7 уберут Database first по моему.сволочи! (с) да он и не нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2015, 11:39 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
AntonariyАртем G В EF7 уберут Database first по моему.сволочи! (с)T4 не уберут, его достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2015, 11:42 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
sanekoffice оч тонко(там по неск тыс строк запрос). Это не тонко - это мета-трешово ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2015, 12:33 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Очень давно делал работу с EF. Потому хотелось бы спросить такие базовые и важные вопросы. Если у меня есть бд которую я создал и наполнял с помощью конекшена к Ado.net - как мне работать с этой бд не изменяя схемы имеющийся там двух таблиц и онуляя с помощью EF code first? Будет достаточно передать в конструктор DbContext название существующей бд ms server, или надо использовать миграции (хотя как я понял последнее для изменение структуры бд что мне пока что не надо)? Надо ли перед манипуляцией с бд с помощью dbcontext сперва соединить ide с бд. Я использую не VS а sharpdevelop, то при добавление edm EF файла выскакивает null pointer exception связанный с Xdocument , то есть атрибутами xml. Но это не касается напрямую codefirst, а database-first. И если лиш два (из десятка) поля обьекта будут non-null при вставке в бд - достаточно сделать nullable properties? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 18:58 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stut, Ну и делай метод База первична и главная. Зачем приключения? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2018, 19:09 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Так обязательно будет создана новая бд? (точнее что делать чтобы использовать существующую и не пустую, в хибернейте это ж возможно). Надо ли вручную вводить конфигурацию соединия, connection string, если использовать code-first или EF "зацепится" автоматически? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 08:32 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutcode-firstнет. Db-first Будет как в хибере. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 08:36 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Ну как это так! Хибернейт имеет режимы Create, Update. Последний создает схему с помощью jpа но надо создать бд вручную. Db-first создает класы из схемы бд. Коуд-фирст - наоборот с класов таблицы. MSDN и интернет предлагает ресурсы code-first with existing database - что предлагает использование нескольких команд (в т.ч. -ignore change) сперва в консоле пакет менеджера - но мне не понятно существующая бд предполагается быть пустой, или в ней могут уже быть таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 19:05 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutХибернейт имеет режимы Create, Update.сказки не рассказывай. Хибер пришел из java. А там никто базу хибером не создает. Даже если ты там подсмотрел метод ....генерировать бд. stutно мне не понятно Ты за неделю код будешь писать или журналист? Я делал db first. Ты делай какой нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2018, 19:19 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Я задаю вопросы чтобы получить адекватный ответ и практичную информацию. Написал о хибернейт - я и имел ввиду хибернейт джавы. А то сколько я буду писать код наверное не должно обсуждаться - тем более я только переписую ado.net на EF. Трудность здесь может быть что я использую альтернативу VS, где вот еdm не хочет генерироватся и пакеты ef sd nuget ограничены тремя версиями - я использую 4.1 - в аpp.config значится 4.4 и при компиляции ошибка что entityframework.dll corrupted, assembly runtime newer... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 03:12 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutЯ задаю вопросы чтобы получить адекватный ответ и практичную информацию.ветка программистов, поэтому разговоров меньше и кода больше. stutя и имел ввиду хибернейт джавы Вам 5 раз написано что в java Db-first. stutТрудность здесь может быть что я использую альтернативу Не используйте. Начните с того как делают все. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 07:32 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Вот в чем трудность - как достать сумы значений колонок во временном интервале. Есть динамический масив названий который совпадает с названиями свойств класа Вalance. Чтобы достать например баланс продаж - (from item in context where item.Date>... && item.Date<... select item.prodazhy).Sum() - но я могу передать название свойства через item.gettype().getproperty("prodazhy"/columnname) - но как мне передать object.property где проперти может динамически меняться в зависимости от выбора в интерфейсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 02:44 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutкак достать сумы значений колонок во временном интервале.отдельную тему надо оформлять с вопросом. Зачем тут писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 07:29 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutгде проперти может динамически меняться в зависимости от выбора в интерфейсе.Можно динамически конструировать выражения, например Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 08:46 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Если перенести в новую тему модераторами я не против. Но последнее выражение что то очень сложное. Может использовать конкатенацию - var pr= "object."+"name[i]" - Getproperty(pr) - не верю что нет возможности использовать полное имя свойства класа. Хотя я могу поступить иначе - вычислить все сумы этих названий которые аналогичны свойствам а потом проверять уже их getProperty(name[i]).Name==name[i] - но если я выбрал лиш 1-2 свойств из 8-10 на которых уже посчитаны сумы как то неэкономично. В предыдущем варианте в плоском Ado.net как раз можно было вставить переменную названия через конкатенацию в sql-запрос. В любом случае если подсчет идет под int? считать null програма не будет - то есть не будет выбрасывать эксепшены. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 10:57 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stut, Или наверное мне надо написать какой то предикат в таком виде - Sum(x=>x.anyproperty==name[i]) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 11:12 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutНо последнее выражение что то очень сложное.Используй Dynamic Linq - он будет делать то же самое, но за кадром. stutне верю что нет возможности использовать полное имя свойства класаstutВ предыдущем варианте в плоском Ado.netКак это делается, я показал выше - можешь не верить дальше. Ты уж определись, что ты хочешь, типизацию или полную свободу в виде динамики. Если типизация - принимай правила игры. Для 8-10 полей, можно и тупой switch написать. Если хочешь динамику - пиши SQL ручками. Тебя, например, не смущает, что в TSQL в процедуре ты не можешь сделать переменным имя поля. Потому что процедура проходит компиляцию. И если очень хочешь динамику - пишешь полностью динамический запрос. Здесь то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 11:26 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutЕсли перенести в новую тему модераторами я не против.самому Скопировать как делают все лень конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 11:44 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Все же вышло не трудно найти вариант: value[i]=context.Balances.Where(y=>y.Date>=d2&&y.Date<=d4).Sum(x=>(int)x.GetType().GetProperty(name[i] .GetValue(x,null); - однако выскакивает эксепшн - LINQ to Entities does not recognize the method 'System.Object GetValue(System.Object, System.Object[])' method, and this method cannot be translated into store expression. Вроде в интернете написано что надо специальнь писать Expression, с чем я вообще не имел дела, хотя вроде все очень просто вышло перед этим. И каких то вменяемых примеров не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 15:50 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Тебе бы надо понять для начала - что такое лямбда и во что она компилируется - что такое IEnumerable, как работает Linq и что такое Expression - как работает Linq2Sql и что такое IQueryable В общем, надо учебник почитать по .NET и C# Тогда у тебя не будет странных потуг использовать GetType stutписать Expression ..... И каких то вменяемых примеров не нашел.Пример, который я дал выше, невменяемый? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 18:46 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stut, Динамика это повышенный уровень программирования. Иногда показан, иногда противопоказан. Так что дерзайте и думайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 19:14 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Не за много будет читать учебник и теорию 10-ый раз? В чем проблема с gettype() - что он возвращает тип обьекта, а не дальше по чейну свойсво и значение свойства обьекта? Что экспрешн единственный выход здесь? Это понятно что linq to entity(sql) компилируется в sql - но я так думаю что можно и без этих двух вариантов обойтись только используя foreach, if. Но тогда придется перечислять все свойства вручную, но без gettype.getproperty(..) не обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 19:49 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Вот сколькоо не обращался здесь- всегда предлагают оклоличные пути. Предлагают читать книги, если здесь надо было бы один пример. Больше того - как раз был пропал интернет - и решение пришло с помощью самого IDE - а именно выпадающего метода AsEnumerable() - после самого linq. И действительно методы рефлексии уже с Enumeration - не вызывали экспепшена - надо было только обойти значение null из таблицы. Привожу здесь решение, без никаких экспрешенов: value[i]=context.Balances.Where (y=>y.Date>=d2&&y.Date<=d4).AsEnumrable().Sum(x=> x.GetType().GetProperty(name[i])GetValue(x,null)!=null?(int)x.GetType().GetProperty(name[i])GetValue(x,null):0); Не было проще написать чтобы трансформировать iqueriable в enumerable. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 00:32 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutи решение пришло с помощью самого IDE - а именно выпадающего метода AsEnumerable()Ну если ты все понимаешь про компиляцию запросов, почему ты сразу это сам сразу не предложил конвертировать в IEnumerable? Ну и ты понимаешь, что если раньше ты запрашивал с сервера одну строку - всего лишь сумму миллиона строк, то теперь ты перекачиваешь миллион строк с сервера на клиента и суммируешь на клиенте. Плюс рефлексия в цикле, причем даже постоянную величину в виде получения Property ты умудрился засунуть внутрь цикла. Ну раз все это тебя это устраивает - вперед к новым победам над производительностью и здравым смыслом! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 04:50 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutВот сколькоо не обращался здесь- всегда предлагают оклоличные пути. Предлагают читать книгиТак а зачем ты обращаешься здесь? Жми точку в студии, она сама предложит варианты. Понимать-то необязательно, как оно работает. А, ну и в гугле тоже все идиоты - предлагают конструировать Expression, вместо того чтобы по простому запилить AsEnumerable ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 04:53 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutНо тогда придется перечислять все свойства вручную, но без gettype.getproperty(..) не обойтись.Зачем getproperty-то???? Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
stutчитать учебник и теорию 10-ый раз?Да. Опыт показывает, что поначалу пропускаешь некоторые моменты, потому что еще не в теме в принципе. Так что и в 10-й раз прочитать не зазорно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 04:59 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Shocker.Pro Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
+1 Вот несколько ТС ты упрям, что пятый пост доказываешь что без динамики не жить. Оказывается можно! Плюс тему ещё замусолил. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 07:27 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Petro123+1Этот вариант хорош статикой. и заодно предохраняет от инъекции. А то (условно говоря) злоумышленник сможет просуммировать и поле с номером кредитной карты (при выборке в одну запись) Но если динамика все-таки будет логичнее, я бы один раз написал конструктор выражения для Sum в библиотеку и юзал бы где ни попадя. Но ТС почему-то хочет надеть штаны через голову ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 07:35 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Спасибо за позитив. В любом случае хотел разобратся сегодня из этими експрешн-три... На предыдущей странице приведена функция фильтра - который возвращает bool - но надо в функции LINQ.SUM(...) - Expression<Func<T,int>>? Такой тоже позаимствованный код- Parameter Expression pe = Expression.Parameter (typeof(Balance), "b"); Expression<Func<Balance, int>> expr = Expression.Lambda<Func<Balance, int>> ( Expression.Property (pe, "Sales"), pe); return expr; - не подойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 00:27 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 05:37 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Так в функцию Sum(...) надо передать аргумент, а функция уже сумирует. В любом случае, до сего момента, с деревьями выражений не имел дело (тем более в книгах). Вот есть Expression.Property(...), что возвращает какое то непонятное выражение. Вот если бы с помощью какой то функции (встроенной, кастомной, lambda) из него получить заветное object.property - вот тогда все это имеет смысл. Хотя в Quaryable.Sum(...) как раз то надо экспрешен. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 10:51 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
В моем варианте - главное избавится от двойного применение getvalue() через присутствие null. Кстати можно было и применить switch() - но когда-то делали ревью этого тестового таска, то негативно оценили использование более 5-ти if() потому я решил применить более автоматический способ. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 11:09 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutно когда-то делали ревью этого тестового таска, то негативно оценили использование более 5-ти if() Вот причина всех поисков понапрасну. Более 5 ти if или switch это нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 12:57 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutпотому я решилверно. Вместо того чтобы наращивать функционал, программист решил... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 12:59 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutя решил применить более автоматический способ.Ты решил не более автоматический способ применить, а отказаться от суммирования на стороне сервера. Я тебе это выше объяснял, но, видимо, не дошло. ( и интересно, как этому отнеслись те, кто делал ревью, или им пофиг? ) Более автоматическим способом было бы использование библиотеки Dynamic Linq для формирования выражения. stutнегативно оценили использование более 5-ти if()потому что дилетанты. Задача: Вывести в консоль три раза строку ABCDEF: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 15:00 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Опять же, если упоротые дилетанты запрещают тебе ковырять в носу использовать if-ы, кто тебе мешает заранее сформировать массив выражений по каждому полю и сложить их в Dictionary<string, Expression<Func<T, int>>> и потом извлекать оттуда по индексу sums[fieldname]. Это-то тебе твои гуру разрешат? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 15:03 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutВ моем варианте - главное избавится от двойного применение getvalue() через присутствие null.Твой вариант надо выкинуть на помойку. Но сам этот вопрос показывает, что ты толком даже не понял, что такое делегат. Так что не зря я тебя отправлял читать учебник. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 16:10 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Зря вы критикуете. На стековере много подобных вопросов - и многие там бы хотели применить рефлексию но как там написано она не работает с getvalue(). Вот привожу краткий метод, который надо передать как аргумент в Sum(...). Но так же применить к нему .compile() иначе получаю какой то алогичный эксепшн - что нуллабл тайп должны иметь значение: public static Expression<Func<Balance,int>> selectonefield (object value, string Prop) { ParameterExpression pe=Expression.Parameter(typeof(Balance), "balance"); Expression<Func<Balance,int>> expression = Expression.Lambda<Func<Balance,int>>(Expression.Property(pe,Prop), pe); return expression;} ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 17:06 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Рефлексия не работает с GetValue()! это выше моих сил. stutВот привожу краткий методТы просто не читаешь, что я пишу. Даже ссылку на то, как свой код оформлять. Похоже, тебя бесполезно направлять на правильный путь, ты, видимо, из принципа будешь делать по-своему. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 17:26 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Говоря о чтение книг - лутче ознакомится с примерами - например с двумя строками с https://www.codeproject.com/Articles/235860/Expression-Tree-Basics. Странно что в моем методе value вообще не используется в описание метода. Хотя при сумирование передается ссылка this на обьект. Касательно делегатов то как начинающего с джавы, они часто кажутся усложнением ситуации. Как и ваша параметризация название метода Selectonefrommany<T>, если это не заведомая ошибка. Так же можно заменить что это linq можно погрупировать по свойству но придется использовать динамику, создавать новые анонимные типы с полями названия свойства, и сумы по свойству - или применять дикшионари, но зачем. И кстати это десктопная апликация что имеет мало общего с серверами - хотя понятно что потребность в такой апликации может возникнуть и в большой корпоративной системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 17:33 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Сори, Quaryable, в отличие от Enumerable не работает с методом рефлексии PropertyInfo.GetValue(...). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 17:38 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
С м/т я не могу нормально оформлять сообщение в т.ч. код. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 17:40 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutСори, Quaryable, в отличие от Enumerable не работает с методом рефлексии PropertyInfo.GetValue(...).Ты так и не понял, чем отличается применение IQueryable от IEnumerable. stutСтранно что в моем методе value вообще не используется в описание метода. Хотя при сумирование передается ссылка this на обьект. Касательно делегатов то как начинающего с джавы, они часто кажутся усложнением ситуации. Как и ваша параметризация название метода Selectonefrommany<T>, если это не заведомая ошибка. Так же можно заменить что это linq можно погрупировать по свойству но придется использовать динамику, создавать новые анонимные типы с полями названия свойства, и сумы по свойству - или применять дикшионари, но зачем. И кстати это десктопная апликация что имеет мало общего с серверами - хотя понятно что потребность в такой апликации может возникнуть и в большой корпоративной системе.тут из сказанного мало что понятно, набор несостыкованных между собой слов, ты то ли сильно торопился, то ли сильно устал сегодня. Если делегаты для тебя слишком сложно, зачем ты используешь Linq? Бери пиши запросы на нативном SQL - никто ж не запрещает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 17:50 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutС м/т я не могу нормально оформлять сообщение в т.ч. код.то есть у тебя на м/т нет английского алфавита и квадратных скобочек? Печально. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 17:51 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Это краткие ответы на вчерашние критические реплики. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 18:23 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Для чего критиковать если все заработало. И я не использовал ваш код. Он может фильтрует но не предоставляет то что надо - хотя он был неким ориентиром чего надо. Для чего вы задаете вопрос о ienumerable, если для последнего метода он не нужен. Вот задам еще два вопроса более близки к названию темы - почему мне в шарпдевелопе невозможно создать файл через edm.exe (хотелось бы использовать database first для другой части кода програмы) - выскакивает нулл эксепшн связаный с xml свойствами файла. Исключение появлялось и до и после установление nuget пакета entityframework. Кроме того удивляет что для работы ЕF с бд мне не надо в database explorer подлючение к этой бд, в отличие от ado.net. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 18:25 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Shocker.Pro Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Вау! Какой прекрасный пример диапазона кода от разных программистов.)) Записал в блокнотик и буду ссылаться). Shocker.Proты, видимо, из принципа будешь делать по-своему Да. Это характер и обратная связь отсутствует. Удачи аффтару! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 22:10 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Petro123Да. Это характер и обратная связь отсутствует. Удачи аффтару!Не, кажется он все-таки построил выражение, просто из слишком сумбурных нечетких предложений я поначалу не сделал такой вывод. Правда, в итоге оказалось, что в яве было лучше (без делегатов и линка ) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 04:56 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
О каком характере вы пишите? Я обращаюсь здесь за информацией которая бы помогла мне решить мои вопросы с кодом. А не чтобы мне написали "учи все с нуля или заново". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 12:29 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutО каком характере вы пишите? Я обращаюсь здесь за информацией которая бы помогла мне решить мои вопросы с кодом. А не чтобы мне написали "учи все с нуля или заново".об упрямстве. Тут публичный форум. 1. Вы не завели отдельный топик хотя я вам предлагал. 2. Ваш вопрос основан на том что больше 5 if это много. Давайте сравним решения. Выкладывайте. Либо закрываем данный вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 12:45 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
Насколько знаю, на некоторых форумах администраторы могут перенести сообщение в новую тему. Да и открою секрет - ваш форум кое-где залочен потому что то выкладывать вряд ли получится, да и зачем уже. И если этот linq был связан из выбором ряда чекеров для вывода даных из бд, то для занесения в бд надо было использовать присвоение значение свойству название которого соответствовало названию радиобаттона. Сперва тоже просто использовал рефлективный однострочный propertyinfo.setvalue(...) - но после экспириенса с экспрешенами написал и такой вариант - который разместился аж на 6 строках. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 19:19 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stut, По теме топика: "EF работа с code first или database first? " вопросы есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 19:33 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
У меня простая бд, две аналогичные таблицы (мои вопросы касались одной), между которыми разве можно было сравнивать баланс - он должен был быть одинаков - а так маппинг 1:1 - в принципе и linq to entity достаточно. Хотя применив две анотации к названию таблицы и свойству ID - умиляет простота ЕF, в отличие от анотаций JРА и xml-файлов в java hibernate. Кроме того в последнем надо подключать несколько библиотек (зависимостей) - в то время когда в ЕF один пакет. А вопросы может остались предыдущие - почему еf работает напрямую с бд, без подключения. Что делает утилита Edmgen.exe - относится ли она к теме топика? Почему она выбрасывает автоматически nullpointerexception? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2018, 21:14 |
|
EF работа с code first или database first?
|
|||
---|---|---|---|
#18+
stutА вопросы может остались предыдущие А выше зачем флуд не относящийся к вопросам? stutпочему еf работает напрямую с бд, без подключения. Неправда. Докажи как он без параметров коннекта работает. stutEdmgen.exe - относится ли она к теме топика?не относится. Модель при база first генерится из студии в меню. Внутри может и запускает, но это не важно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2018, 09:09 |
|
|
start [/forum/moderation_log.php?user_name=%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%92%D0%B8%D0%BD]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
90ms |
get tp. blocked users: |
1ms |
others: | 4988ms |
total: | 5180ms |
0 / 0 |