Entity Framework за! и против!
От: Ringin  
Дата: 31.10.12 06:33
Оценка:
Разбирался на днях с Entity Framework, точнее сказать задача стояла работать с базой через ORM, и я остановился на Entity Framework.
У меня сложилось очень двоякое впечатление. Что-то хорошо, а что-то, что можно сделать совершенно простым запросом к бд, через entity framework просто так не сделаешь.

Выскажите пожалуйста свои мнения!
Re: Entity Framework за! и против!
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.10.12 06:42
Оценка:
Здравствуйте, Ringin, Вы писали:

R>Разбирался на днях с Entity Framework, точнее сказать задача стояла работать с базой через ORM, и я остановился на Entity Framework.

R>У меня сложилось очень двоякое впечатление. Что-то хорошо, а что-то, что можно сделать совершенно простым запросом к бд, через entity framework просто так не сделаешь.

R>Выскажите пожалуйста свои мнения!

Ну почему же, многие вещи даже проще чем в SQL
Кстати вроде как и сейчас можно в Linq to SQL использовать вывод типа
http://msdn.microsoft.com/ru-ru/magazine/hh781018.aspx


string entitySQL = " SELECT p, p.Filling " +
"FROM PartyContext.Pinatas AS p " 
"WHERE p.Filling.Description='Candy'";
var query=context.CreateQuery<DbDataRecord>(entitySQL);
query.MergeOption = System.Data.Objects.MergeOption.NoTracking;
var pinatasWithFilling=query.ToList();


Такой аля 1С ный синтаксис
и солнце б утром не вставало, когда бы не было меня
Re[2]: Entity Framework за! и против!
От: Ringin  
Дата: 31.10.12 06:57
Оценка: :)
Здравствуйте, Serginio1, Вы писали:

S> Ну почему же, многие вещи даже проще чем в SQL

S>Кстати вроде как и сейчас можно в Linq to SQL использовать вывод типа
S>http://msdn.microsoft.com/ru-ru/magazine/hh781018.aspx


S>
S>string entitySQL = " SELECT p, p.Filling " +
S>"FROM PartyContext.Pinatas AS p " 
S>"WHERE p.Filling.Description='Candy'";
S>var query=context.CreateQuery<DbDataRecord>(entitySQL);
S>query.MergeOption = System.Data.Objects.MergeOption.NoTracking;
S>var pinatasWithFilling=query.ToList();
S>


S> Такой аля 1С ный синтаксис


А вот надо мне например вывести пользователю все таблицы базы данных, прочитать констрейнты и показать связи, как это сделать?
Re: Entity Framework за! и против!
От: a_g_99 США http://www.hooli.xyz/
Дата: 31.10.12 06:59
Оценка: 9 (3) +3 :)
Здравствуйте, Ringin, Вы писали:

R>Разбирался на днях с Entity Framework, точнее сказать задача стояла работать с базой через ORM, и я остановился на Entity Framework.

R>У меня сложилось очень двоякое впечатление. Что-то хорошо, а что-то, что можно сделать совершенно простым запросом к бд, через entity framework просто так не сделаешь.
Крайне медленный, уродливый и костыльный framework. Если вам нужен простой OM, советую Dapper. Для более сложных задач может вполне сгодиться NHibernate. Если все-таки намерены использовать EF, будьте готовы к крайне низкой производительности, огромному количеству кода и целому валу проблем.
Re[3]: Entity Framework за! и против!
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.10.12 07:03
Оценка:
Здравствуйте, Ringin, Вы писали:


S>> Такой аля 1С ный синтаксис


R>А вот надо мне например вывести пользователю все таблицы базы данных, прочитать констрейнты и показать связи, как это сделать?

Так никто тебе не мешает использовать SQL, там где это удобнее. Просто в Linq to EF полно прочих вкусностей. Ассемблер в нативе никто пока не запрещал
и солнце б утром не вставало, когда бы не было меня
Re: Entity Framework за! и против!
От: IB Австрия http://rsdn.ru
Дата: 31.10.12 07:53
Оценка:
Здравствуйте, Ringin, Вы писали:

R>Выскажите пожалуйста свои мнения!


Против.
Мы уже победили, просто это еще не так заметно...
Re[2]: Entity Framework за! и против!
От: IB Австрия http://rsdn.ru
Дата: 31.10.12 07:54
Оценка: +5
Здравствуйте, a_g_99, Вы писали:

__>Если все-таки намерены использовать EF, будьте готовы к крайне низкой производительности, огромному количеству кода и целому валу проблем.

В этом смысле это тот же NHibernate только в профиль — разницы никакой.
Мы уже победили, просто это еще не так заметно...
Re[3]: Entity Framework за! и против!
От: a_g_99 США http://www.hooli.xyz/
Дата: 31.10.12 09:07
Оценка:
Здравствуйте, IB, Вы писали:

IB>В этом смысле это тот же NHibernate только в профиль — разницы никакой.

По крайней мере он быстрее EF(по моим личным тестам в среднем примерно в 6 раз). И там можно что-то быстро исправить (open source). А вообще согласен, оба каркаса отвратительны.
Re[4]: Entity Framework за! и против!
От: QrystaL Украина  
Дата: 31.10.12 09:33
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>Здравствуйте, IB, Вы писали:


IB>>В этом смысле это тот же NHibernate только в профиль — разницы никакой.

__>По крайней мере он быстрее EF(по моим личным тестам в среднем примерно в 6 раз). И там можно что-то быстро исправить (open source). А вообще согласен, оба каркаса отвратительны.

Что посоветуете в качестве альтернативы?
Re[5]: Entity Framework за! и против!
От: a_g_99 США http://www.hooli.xyz/
Дата: 31.10.12 10:46
Оценка: -1
Здравствуйте, QrystaL, Вы писали:

QL>Что посоветуете в качестве альтернативы?

В одной русской(российской?) песне пелось "Лучшие друзья девушек это бриллианты". Аналогично ситуации, лучшим другом developer является SqlDataReader. Но если вы все-таки хотите большего:
1) dapper, микро-OM для некоторого "ускорения" процесса разработки. Это скорее некоторая идеология а не полноценная ORM, но ее вполне достаточно like base для дальнейшего построения DL
2) разрабатывайте собственную OM based on features & tasks in DL которые вы должны реализовать
Re[5]: Entity Framework за! и против!
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.10.12 11:02
Оценка: -1
Здравствуйте, QrystaL, Вы писали:

QL>Что посоветуете в качестве альтернативы?

1C
и солнце б утром не вставало, когда бы не было меня
Re[6]: Entity Framework за! и против!
От: Yoriсk  
Дата: 31.10.12 11:07
Оценка: 12 (4) +5 -2 :)
Здравствуйте, a_g_99, Вы писали:

__>Здравствуйте, QrystaL, Вы писали:


QL>>Что посоветуете в качестве альтернативы?

__>В одной русской(российской?) песне пелось "Лучшие друзья девушек это бриллианты". Аналогично ситуации, лучшим другом developer является SqlDataReader. Но если вы все-таки хотите большего:

Только хранимки, только динамический sql, только хардкор!

__>2) разрабатывайте собственную OM based on features & tasks in DL которые вы должны реализовать


И велосипедирование!
Re[6]: Entity Framework за! и против!
От: a_g_99 США http://www.hooli.xyz/
Дата: 31.10.12 11:18
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>1C

За что же вас так Бог наказал ?
Re[7]: Entity Framework за! и против!
От: a_g_99 США http://www.hooli.xyz/
Дата: 31.10.12 11:19
Оценка: +1
Здравствуйте, Yoriсk, Вы писали:

Y>И велосипедирование!

У каждого свой уровень. Кто-то велесипидирует, кто-то максимально эффективно и быстро реализует свой DL.
Re[7]: Entity Framework за! и против!
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 31.10.12 11:33
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>Здравствуйте, Serginio1, Вы писали:


S>>1C

__>За что же вас так Бог наказал ?
Может наоборот Природа наградила? А если без шуток, то для небольших систем Linq to EF самое то. Все, что больше уже требует огромного количества кода и наработок. А вот здесь уже выступают системы типа 1С,Microsoft Dynamics и оракловские продукты. Скорости вполне хватает, а для записи бОльших данных можно использовать прямой доступ. В том числе и для чтения но это типа не правильно, так позволяет обходиться без ключей.
и солнце б утром не вставало, когда бы не было меня
Re: Entity Framework за! и против!
От: alesterre Удмуртия  
Дата: 31.10.12 13:07
Оценка: -1
Здравствуйте, Ringin, Вы писали:

R>Разбирался на днях с Entity Framework, точнее сказать задача стояла работать с базой через ORM, и я остановился на Entity Framework.

R>У меня сложилось очень двоякое впечатление. Что-то хорошо, а что-то, что можно сделать совершенно простым запросом к бд, через entity framework просто так не сделаешь.

R>Выскажите пожалуйста свои мнения!


Хорошая вещь, сильно упрощает жизнь, за счет графического дизайнера модели можно быстро начать работать и уже по ходу дела разбираться с тонкостями.

Сильно тормозит на запросах к нескольким связанным таблицам. Но вообще, если что-то работает не так, как хотелось бы, почти всегда можно выкрутиться.
Re[4]: Entity Framework за! и против!
От: alexsoff Россия  
Дата: 31.10.12 17:58
Оценка:
Здравствуйте, a_g_99, Вы писали:

__> И там можно что-то быстро исправить (open source). А вообще согласен, оба каркаса отвратительны.

Да и EF теперь OpenSource здесь
Re[3]: Entity Framework за! и против!
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.12 18:24
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, a_g_99, Вы писали:


__>>Если все-таки намерены использовать EF, будьте готовы к крайне низкой производительности, огромному количеству кода и целому валу проблем.

IB>В этом смысле это тот же NHibernate только в профиль — разницы никакой.


А ты когда на него смотрел последний раз?
Re: Entity Framework за! и против!
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.12 18:26
Оценка: -1
Здравствуйте, Ringin, Вы писали:

R>Разбирался на днях с Entity Framework, точнее сказать задача стояла работать с базой через ORM, и я остановился на Entity Framework.

R>У меня сложилось очень двоякое впечатление. Что-то хорошо, а что-то, что можно сделать совершенно простым запросом к бд, через entity framework просто так не сделаешь.

В EF можно напрямую в БД запрос отправить и замапить результаты на классы.

R>Выскажите пожалуйста свои мнения!


А тебе чего надо? И почему в КСВ?
Re[4]: Entity Framework за! и против!
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.10.12 18:27
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>Здравствуйте, IB, Вы писали:


IB>>В этом смысле это тот же NHibernate только в профиль — разницы никакой.

__>По крайней мере он быстрее EF(по моим личным тестам в среднем примерно в 6 раз). И там можно что-то быстро исправить (open source). А вообще согласен, оба каркаса отвратительны.


В последней версии сильно оптимизировали и выложили на codeplex с исходниками.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.