|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
hVosttАлексей КПерспективные ОРМ, на которые ты в будущем захочешь перейти, могут не уметь с ними работать. Поймут, не пегеживай! Оптимизм - это хорошо. :-) hVosttАлексей КЯ не про SQL, я про LINQ. Например, может потребоваться использовать DbFunctions, специфичный для EF. Например, EF умеет выполнять LINQ запросы, возвращающие вложенные коллекции, а BLToolkit не умеет. Например, EF умеет транслировать в SQL DateTime.Now, а какой-нибудь другой ОРМ может этого не уметь. Примеров можно привести много. Считаю, что всё, что использует IQueryable, жёстко прибито к EF, надо смириться с этим. Вот не согласен. Давече пришлось работать с одной либой, которая решительно не жуёт DateTimeOffset в LINQ. Что делать? Простенький адаптер, и зажувала как миленькая Повезло. Попробуй написать какой-нибудь адаптер для EF, преобразующий Expression Tree - хрентатам. Проще, чем писать LINQ-провайдер-обёртку на сегодняшний день решения нет. hVosttАлексей КТак и делаем. Только в результате большая часть логики располагается в слое доступа, следовательно тестировать в других слоях просто нечего, логики в них нет или мало. В сложившейся ситуации самым разумным считаю использовать тестовую БД, что сразу и было предложено. :-) У тя бизнес-логика крепится к СУБД как рыба-прилипала? Это обосновано?Ну это смотря с какой стороны посмотреть. Я бы сказал, что логика в моём случае жёстко крепится к EF. А провайдеры разных СУБД под EF6 худо-бедно стали появляться. А EF7 сразу позиционируется как мультиСУБДный. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 10:59 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
Алексей КПовезло. Попробуй написать какой-нибудь адаптер для EF, преобразующий Expression Tree - хрентатам. Проще, чем писать LINQ-провайдер-обёртку на сегодняшний день решения нет. Ну нет в мире идеала.. Хотя нет, LINQ всё-таки к нему очень близок. При желании ET можно ковырять, это может быть сложно, но возможно. Ну а реализовывать LINQ провайдер никто не заставляет, нет же необходимости. Алексей КНу это смотря с какой стороны посмотреть. Я бы сказал, что логика в моём случае жёстко крепится к EF. А провайдеры разных СУБД под EF6 худо-бедно стали появляться. А EF7 сразу позиционируется как мультиСУБДный. А смысло в этом закреплении есть? Неужели всё в производительность упирается? LINQ2EF достаточно быстр же? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 11:04 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
hVosttАлексей КПовезло. Попробуй написать какой-нибудь адаптер для EF, преобразующий Expression Tree - хрентатам. Проще, чем писать LINQ-провайдер-обёртку на сегодняшний день решения нет. Ну нет в мире идеала.. Хотя нет, LINQ всё-таки к нему очень близок. При желании ET можно ковырять, это может быть сложно, но возможно. Ну а реализовывать LINQ провайдер никто не заставляет, нет же необходимости.Я не поленился, написал провайдер-обёртку. Теперь имею подставляемые выражения, как в LINQKit и BLToolkit, описание и реализация есть у меня на сайте, если интересно. Есть идея написать аналог SQL-ного case-when-then, но руки не доходят. В любом случае, полный контроль над Expression Tree радует. :-) hVosttАлексей КНу это смотря с какой стороны посмотреть. Я бы сказал, что логика в моём случае жёстко крепится к EF. А провайдеры разных СУБД под EF6 худо-бедно стали появляться. А EF7 сразу позиционируется как мультиСУБДный. А смысло в этом закреплении есть? Неужели всё в производительность упирается? LINQ2EF достаточно быстр же?Ну мы на EF строим в том числе и достаточно сложные отчёты. На этих задачах много мелких SQL-запросов сильно осложняют ситуацию, несмотря на то, что EF на сегодняшний день оптимизирован достаточно хорошо. В предыдущих десктопных проектах не было пэйджинга, этот факт так же осложняет ситуацию. В новых веб-проектах пэйджинг есть, возможно в них вреда от "N+1" будет меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 11:15 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
Алексей КЯ не поленился, написал провайдер-обёртку. Теперь имею подставляемые выражения, как в LINQKit и BLToolkit, описание и реализация есть у меня на сайте, если интересно. Есть идея написать аналог SQL-ного case-when-then, но руки не доходят. В любом случае, полный контроль над Expression Tree радует. :-) Ето да. А что BLTookite ещё жыф? Как так? Алексей КНу мы на EF строим в том числе и достаточно сложные отчёты. На этих задачах много мелких SQL-запросов сильно осложняют ситуацию, несмотря на то, что EF на сегодняшний день оптимизирован достаточно хорошо. В предыдущих десктопных проектах не было пэйджинга, этот факт так же осложняет ситуацию. В новых веб-проектах пэйджинг есть, возможно в них вреда от "N+1" будет меньше. А вьюхе можно мапить в классы, не пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 11:27 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
hVosttАлексей КЯ не поленился, написал провайдер-обёртку. Теперь имею подставляемые выражения, как в LINQKit и BLToolkit, описание и реализация есть у меня на сайте, если интересно. Есть идея написать аналог SQL-ного case-when-then, но руки не доходят. В любом случае, полный контроль над Expression Tree радует. :-) Ето да. А что BLTookite ещё жыф? Как так?Давно на него не смотрел. Слышал, что они сделали Linq2Db. hVosttАлексей КНу мы на EF строим в том числе и достаточно сложные отчёты. На этих задачах много мелких SQL-запросов сильно осложняют ситуацию, несмотря на то, что EF на сегодняшний день оптимизирован достаточно хорошо. В предыдущих десктопных проектах не было пэйджинга, этот факт так же осложняет ситуацию. В новых веб-проектах пэйджинг есть, возможно в них вреда от "N+1" будет меньше. А вьюхе можно мапить в классы, не пробовали?Используем, когда EF чего-то не может. Например - рекурсивные запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 11:44 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
hVosttпросто подразумевается, что слой доступа должен быть, для него вешаются эти атрибуты, просто детали реализации знать не надо, и следовательно прямой зависимости нет. Да выкинь ты нафик эти атрибуты, что ты зациклился на них. hVosttтак дело в том, что ты абстрагируешь слой доступа, а не EDM. что там внутри -- EDM, или NHibernate, или чистый ADO, это уже не важно. Ну такой и должна быть архитектура. В чем вопрос? hVosttну я бы не был так категоричен. покрытие 100% часто увеличивает ценник, истино тебе говорю Логика в поко? Укурен? :) Алексей КМСУАлексей К, короче, любитель поклевать моск, в чем вопрос? Кто виноват? Путин? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 11:55 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
МСУhVosttну я бы не был так категоричен. покрытие 100% часто увеличивает ценник, истино тебе говорю Логика в поко? Укурен? :)Rich domain model? МСУАлексей Кпропущено... Кто виноват? Путин? Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:10 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
МСУhVosttтак дело в том, что ты абстрагируешь слой доступа, а не EDM. что там внутри -- EDM, или NHibernate, или чистый ADO, это уже не важно. Ну такой и должна быть архитектура.Архитектура прошлого. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:16 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
Алексей КМСУпропущено... Логика в поко? Укурен? :)Rich domain model? Упоротость и кретинизм? Алексей КМСУпропущено... Путин? Что делать? Избирать на второй срок? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:32 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... Rich domain model? Упоротость и кретинизм?Да. МСУАлексей Кпропущено... Что делать? Избирать на второй срок? Нет, я за конституционную монархию! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:39 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
Алексей КДа. Да. Алексей КНет, я за конституционную монархию! Варианты? Алексей КАрхитектура прошлого. Неожиданно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:48 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
МСУАлексей КДа. Да.Даа? МСУАлексей КНет, я за конституционную монархию! Варианты? А какие тут могут быть варианты? МСУАлексей КАрхитектура прошлого. Неожиданно Я всегда говорил, что с появлением LINQ мир сильно изменился. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:54 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
Алексей КИспользуем, когда EF чего-то не может. Например - рекурсивные запросы. Вьюху использую для этого, намапливаю в класс, а дальше обычный LINQ и любые запросы по любому уровню с любым вложением -- и быстро! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:55 |
|
Модель Entity без зависимости от EF
|
|||
---|---|---|---|
#18+
hVosttАлексей КИспользуем, когда EF чего-то не может. Например - рекурсивные запросы. Вьюху использую для этого, намапливаю в класс, а дальше обычный LINQ и любые запросы по любому уровню с любым вложением -- и быстро! Ну и я про то же. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:56 |
|
|
start [/forum/topic.php?fid=17&msg=38831271&tid=1349662]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 266ms |
0 / 0 |