|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПарамонhVostt, Походу, проекции это самый приемлемый подход для работы orm с реляционной базой.Может стоит попробовать другой ORM? Проблема не велика, а в чем то может быть и польза. Нет ничего идеального, а это уже в коробке, цветет и развивается :) А какой предложить хотел и чем он лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 00:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВот странный ты человек. А чего ты тогда троллишь на тему всяких Query? Вот сейчас не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 06:29 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAМожет стоит попробовать другой ORM? При чём тут вообще выбор ORM? Проекции за ORM-ом, а не способ работы с ним. В SQL, например, именно так и работают: пишут SELECT <набор нужных полей из одной или нескольких таблиц или подзапросов> -- скажешь «плохой SQL, может стоит попробовать другой язык запросов?»? Странный ты человек однако. Что-то сказать видимо хочешь, а что хрен проссышь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 06:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
с трудом я это все перечитал...) Уже и боюсь что-то ещё спрашивать) А по факту получилось куча методов Код: c# 1. 2. 3. 4.
Но из того что вы описывали в теме, как сделать по другому так и не понял))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 07:19 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAМожет стоит попробовать другой ORM? При чём тут вообще выбор ORM? Проекции за ORM-ом, а не способ работы с ним. В SQL, например, именно так и работают: пишут SELECT <набор нужных полей из одной или нескольких таблиц или подзапросов> -- скажешь «плохой SQL, может стоит попробовать другой язык запросов?»? Странный ты человек однако. Что-то сказать видимо хочешь, а что хрен проссышь.А может и скажу :) В MongoDB тоже есть проекции, но! MongoDB документо-ориентированная, в ней полностью документ по ключу выбирается очень быстро и никто не будет заморачиваться насчет проекций, как средства повышения производительности. MongoDB придумывался для web, и отлично подходит для этого. Поэтому почему не попробовать ее в каком-нибудь поекте? Там есть свой язык запрсов :) Но это так, лирическое отступление. А насчет ORM: известно, что dapper уделывает EF по скорости, и возможно под задачи Парамона лучше подойдет он, чем EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 09:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAА насчет ORM: известно, что dapper уделывает EF по скорости, и возможно под задачи Парамона лучше подойдет он, чем EF. Известно, что ASM уделывает C#, Java и практически всё остальное по скорости. И чо? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:20 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuс трудом я это все перечитал...) Уже и боюсь что-то ещё спрашивать) А по факту получилось куча методов Код: c# 1. 2. 3. 4.
Но из того что вы описывали в теме, как сделать по другому так и не понял)))И не поймёте, пока грамотно вопрос не зададите :) Александр Бындю: "Использовать шаблон Specification вместе c шаблоном Query Object. Второй шаблон уже реализован в .NET с помощью дерева запросов на LINQ". Domain-Driven Design: Repository (смотрите Решение №2) Построение уровня доступа к данным с использованием шаблона "спецификация" в приложениях на ASP.NET MVC ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:27 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЧерез плечо! Выбор ORM-стратегии (.NET) http://az.lib.ru/d/dostoewskij_f_m/text_0050.shtml Почитай. И пойми сам, что я этим хотел сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, да всё тоже. Инструмент выбирается под задачу, возможно Парамону в конкретно его задаче dapper подойдёт лучше, чем EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, да всё тоже. Инструмент выбирается под задачу, возможно Парамону в конкретно его задаче dapper подойдёт лучше, чем EF. Да понятно. Но твоё замечание «уделывает по скорости» несколько нелепо. Их нельзя сравнивать по скорости, ибо объём работы который выполняется в Dapper и EF различается конкретно. Если уж на то, то любой кавказец на шестёрочке «уделает» любого олипийца на велики, ведь Кавказ -- сила! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 11:09 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, да всё тоже. Инструмент выбирается под задачу, возможно Парамону в конкретно его задаче dapper подойдёт лучше, чем EF. Да понятно. Но твоё замечание «уделывает по скорости» несколько нелепо. Их нельзя сравнивать по скорости, ибо объём работы который выполняется в Dapper и EF различается конкретно. Если уж на то, то любой кавказец на шестёрочке «уделает» любого олипийца на велики, ведь Кавказ -- сила! Ну не надо. Например ты отказался от такого функционала как ленивая загрузка (lazy-loading) и предзагрузка (eager fetching) в угоду проекциям. Ты попросту перестал на этут тему заморачиваться. Так может и вообще не нужено всего того "объёма работ", что выполняет EF и задача полностью решится скоростью Dapper-а? Почему бы не задуматься на эту тему Парамону, ТСу, ещё какому читателю, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 11:45 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, вот кстати такой вопрос. Если в сессии был загружен объект (для изменений например) Код: c# 1.
и по окончанию запроса мы отдаём его проекцию Код: c# 1.
То EF поймёт что надо брать объект из кэша, или будет делать отдельный запрос к БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 11:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНапример ты отказался от такого функционала как ленивая загрузка (lazy-loading) и предзагрузка (eager fetching) в угоду проекциям. Ты попросту перестал на этут тему заморачиваться. Так может и вообще не нужено всего того "объёма работ", что выполняет EF и задача полностью решится скоростью Dapper-а? Почему бы не задуматься на эту тему Парамону, ТСу, ещё какому читателю, а? Я не отказывался от ленивой загрузки. В проекции также могут быть целые объекты, с ленивыми пропертями. А от «жадной» загрузки да -- в основном отказался. Не нашлось ещё такой задачи, где бы оно пригодилось. Я ж не буду под какую-то непонятную возможность специально выдумывать задачу? Кроме этого у EF есть целый вагон способностей, которых нет у Dapper. Если же в приоритете массивная работа с данными и она должна быть максимально быстрой, то можно посмотреть на Dapper. Или вообще NoSQL. Просто странно, что вдруг внезапно предложил на «выбор» другой ORM — точнее micro ORM. Просто так. К чему бы это? Я уверен, что Парамон в состоянии исследовать варианты, если возникнет такая необходимость. Когда EF был только в зачаточном состоянии, я использовал BLToolkit, ещё NHibernate (но этот пациент мне вообще не понравился, просто субъективно не вышло у нас подружиться). Потом увидел, что EF достиг юзабельного состояния и перешёл на него. О чём ни разу не пожалел. Последние версии EF работают очень даже шустро. Мало? Тогда прикручивается кеш 2 уровня, и вообще всё в шоколаде. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, вот кстати такой вопрос. Если в сессии был загружен объект (для изменений например) Код: c# 1.
и по окончанию запроса мы отдаём его проекцию Код: c# 1.
То EF поймёт что надо брать объект из кэша, или будет делать отдельный запрос к БД? Зачем его куда-то отдавать? UOW.Save() и дело с концом. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТо EF поймёт что надо брать объект из кэша, или будет делать отдельный запрос к БД? В рамках сессии один и тот же объект берётся из кеша. Но запрос с условием Where заставляет EF повторить запрос, даже если условие по Id. Это логично. Ну а если приделан кеш 2 уровня, повторного запроса к базе может и не быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttПоследние версии EF работают очень даже шустро. Мало? Тогда прикручивается кеш 2 уровня, и вообще всё в шоколаде.Ты случаем не про эту ли статью: Second-Level Caching in the Entity Framework and Azure ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, вот кстати такой вопрос. Если в сессии был загружен объект (для изменений например) Код: c# 1.
и по окончанию запроса мы отдаём его проекцию Код: c# 1.
То EF поймёт что надо брать объект из кэша, или будет делать отдельный запрос к БД? Зачем его куда-то отдавать? UOW.Save() и дело с концом.Хм. Пользователь запостил изменения, для изменений ты тянешь Entity. Применили изменения, пользователю нужно отдать данные для отображения во View. Для отображения ты используешь проекции. Вроде так. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVosttПоследние версии EF работают очень даже шустро. Мало? Тогда прикручивается кеш 2 уровня, и вообще всё в шоколаде.Ты случаем не про эту ли статью: Second-Level Caching in the Entity Framework and Azure ? Я про https://efcache.codeplex.com/ ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAпропущено... Ты случаем не про эту ли статью: Second-Level Caching in the Entity Framework and Azure ? Я про https://efcache.codeplex.com/ Использовал? С чем? Redis, Couchbase? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:51 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAХм. Пользователь запостил изменения, для изменений ты тянешь Entity. Применили изменения, пользователю нужно отдать данные для отображения во View. Для отображения ты используешь проекции. Вроде так. А понял о чём ты. После сабмита данные будут извлечены ещё раз, если они будут затребованы, так за это время могут быть ещё и другие изменения (другими потоками например), которые следует учесть, чтобы отправляемые данные были максимально актуальны. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:52 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVosttпропущено... Я про https://efcache.codeplex.com/ Использовал? С чем? Redis, Couchbase? Memory. Но в ближайшее время планируем поработать с Redis, как раз проект назревает, где может понадобиться работать с приличными нагрузками. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAХм. Пользователь запостил изменения, для изменений ты тянешь Entity. Применили изменения, пользователю нужно отдать данные для отображения во View. Для отображения ты используешь проекции. Вроде так. А понял о чём ты. После сабмита данные будут извлечены ещё раз, если они будут затребованы, так за это время могут быть ещё и другие изменения (другими потоками например), которые следует учесть, чтобы отправляемые данные были максимально актуальны.Окей. А теперь представь, что вы перешли на Redis. Следовательно другие потоки обновили в нём данные. EF поймёт это в случае с проекциями? Или тебе надо попробовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Хотя если у вас один сервер, то должно работать и с Memory. При чём тут другие потоки, если всё в рамках одного пула? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:57 |
|
|
start [/forum/topic.php?fid=17&msg=38801644&tid=1349680]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 290ms |
0 / 0 |