|
Модераторы: gambit |
|
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Уважаемые винградовцы, разрешите представить Вашему вниманию мои статьи по Entity Framework.
Цикл статей "Влюбляемся в Entity Framework": 1. Введение 2. Архитектура EF 3. Введение в запросы 4. Создание запросов 5. Выполнение запросов и маппинг Продолжение следует. Серия статей "Entity Framework 4": 1. Pluralization, генерация DDL и удаление сущностей в дизайнере Продолжение следует. Это сообщение отредактировал(а) Idsa - 8.6.2009, 10:41 |
|||
|
||||
thomas |
|
|||
Доцент... почти Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
Idsa,
+ +1 -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
thomas, когда писал фразу
, вспомнил о тебе |
|||
|
||||
jonie |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 8 Всего: 118 |
Idsa скринкасты, нам нужны скринкасты 8)) (тока не в wmv, флеш имхо лучше))
выложи материал на habrahabr.ru - так тебя узнает много (зачастую неадекватного)) народу)) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Не, я уж как-нибудь постаринке А оно мне надо? С другой стороны, блог у меня в зародышевом состоянии, читателей практически нет, соответственно нет и комментов (а писать в режиме "монолог" не очень прикольно). В общем, я еще думаю Это сообщение отредактировал(а) Idsa - 11.3.2009, 11:16 |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
||||
|
||||
thomas |
|
|||
Доцент... почти Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
Idsa,
Спасибо. Читаю с интересом. Ждем продолжения. Успехов во всем. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
-Mikle- |
|
|||
Невидимка Vingrad'а Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 1 Всего: 59 |
Idsa, спасибо, мне тоже интересно почитать
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Спасибо за позитив Как говорится, доброе слово даже Идсе приятно
Но еще больше мне бы хотелось услышать критику: ошибки, опечатки, что не понравилось и т. д. |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Правду говорят: власть портит людей Первое, что я сделал, став модератором ADO.NET-раздела, - прикрепил этот пост. Надеюсь, никто не против.
|
|||
|
||||
thomas |
|
|||
Доцент... почти Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
Idsa,
Ты не спрашивай, а статьи пиши дальше. Добавлено через 1 минуту и 35 секунд Да, кстати поздравляю с назначением на столь ответственный пост. Будь умненьким и благоразумненьким, как говорил папа Карло. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Думаю, следующая статья будет в лучшем случае через пару недель. У меня кругом дедлайны... |
|||
|
||||
SpaceSpace |
|
|||
Опытный Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: нет Всего: 10 |
Idsa, может про Sync Framework тоже заодно напишеш?
-------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
SpaceSpace, очень вряд ли У меня по EF запланировано порядка 15 статей...
|
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Idsa, раз уж в соседнем топике Linq To Sql обозвали мертворожденным...Можно заказать тему для слудющией статьи?
В последнее время MS наконец-то стало на рельсы TDD, а прогонять unit-тесты на коде, жесто связанным с базой неприятно и долго - и разработчики просто начинают на тестирование забивать... вобщем, хочу статью по реализации простой реализации паттерна Repository и Persistence Ignorance в EF, желательно в сравнении с Linq To Sql. |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
PashaPash, подобный пост у меня запланирован... но, к сожалению, это будет совсем не скоро.
|
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Idsa, ну можно хоть немного поднять ему приоритет?
|
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
PashaPash, сделано
|
|||
|
||||
Sharki |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 134 Регистрация: 15.1.2005 Репутация: нет Всего: нет |
Спасибо за интересные статьи.А на каком месте в очереди тема Sync Framework ,Особенно тема Sync Framework + DB.
Для меня это сейчас очень актуально.Может передвините её поближе. |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
У меня даже планов нет об этом писать |
|||
|
||||
Sharki |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 134 Регистрация: 15.1.2005 Репутация: нет Всего: нет |
а жаль,очень интересная тема.
|
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Sharki, так вот и возьмитесь постингом по этой теме
|
|||
|
||||
Sharki |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 134 Регистрация: 15.1.2005 Репутация: нет Всего: нет |
Спасибо Idsa,но я ещё не дорос чтоб свои статьи писать.Мне самому ещё помощь нужна.Но за предложение спасибо.
|
|||
|
||||
Partizan |
|
|||
Let's do some .NET Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: нет Всего: 67 |
Idsa, а я бы хотел услышать побольше об использовании MS Azure Services, можно и мой заказ на статью поместить в очередь? -------------------- СУВ, Partizan. |
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Idsa, дай им палец - сожрут целиком.
|
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
||||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
В приложенном файле к второй статье скрипт создает пустую БД, таблицы Addresses и Persons отсутвуют.
--------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Пофиксил
Теперь вместо скрипта бэкап. И залил я его на этот раз на dropbox: http://dl.getdropbox.com/u/957029/Developi.../FirstModel.bak Это сообщение отредактировал(а) Idsa - 24.5.2009, 14:56 |
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
Не знаю в правильном ли месте постю инфу, но :
очень помогает в освоении книжка "Programming Entity Framework by Julia Lerman" (eng) (можно найти и в электронном варианте) Достаточно четко все изложено и куча примеров кода. примеры кода по книге можно взять тут --------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Опубликовал пятую часть: Выполнение запросов и маппинг
Это сообщение отредактировал(а) Idsa - 31.5.2009, 22:11 |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Цикл статей "Влюбляемся в Entity Framework" временно приостановлен.
В ближайшее время буду заниматься серией статей по Entity Framework 4. Предлагаю Вашему вниманию первую часть: Pluralization, генерация DDL и удаление сущностей в дизайнере |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
PashaPash, помнится ты заказывал статью о реализации паттернов Repository и Persistence Ignorance в EF, при этом намекая на то, что в LINQ To SQL дела с этим обстоят лучше. Так как моя компетенция в вопросе паттернов находится на низком уровне, прошу пояснить, чем в этом отношении LINQ To SQL выигрывает у EF v. 1.
|
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
PashaPash, задам наводящие вопросы:
1. Дело в POCO? 2. Дело только в POCO или в чем-то еще? 3. Может, POCO вообще ни при чем? Тогда что "при чем"? |
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Idsa, дело в POCO.
И вообще в возможности персистить произвольный класс. Это сообщение отредактировал(а) PashaPash - 9.6.2009, 15:46 |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
PashaPash, а чем в этом отношении LINQ To SQL лучше EF v. 1? Только лишь тем, что L2S-сущности требует реализации интерфейса, а EF-cущности - наследования от базового класса (к слову, в EF v. 1 есть поддержка сущностей, реализующих интерфейс, а не наследующих базовый класс)?
|
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Idsa, L2S вообще не требует ничего от сохраняемого класса. Берешь POCO объект - и сохраянешь/загружаешь (могу пример скинуть для изучения). Т.е. он позволяет сделать CRUD-репозиторий для произвольных классов. А EF - требует определенного предка, навязывает tracking ... вобщем слишком сильно вползает в уровень BO/BE, и тянет на себя одеяло архитектуры.
|
|||
|
||||
Idsa |
|
||||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Будет очень кстати
Т. е. те интерфейсы, которые для классов реализует дизайнер, - необязательные? Что, даже навигационные свойства - не L2S-specific? |
||||
|
|||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
ок, как доберусь до работы
Вообще весь файл, сгенеренный дизайнером - необязателен. Можно создать DataContext, подсунуть ему метаданные (XmlMappingSource в случае чистых POCO, AttributeMappingSource в случае не совсем чистых) - и все заработает. Если не нужен/не используется lazy load, то EntityRef/EntitySet не нужны, L2S вполне загружает связи в обычные свойства и List<T>. Минимализм и все такое. |
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
Уже не первый день с интересом слежу за развитием данной темы. --------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
||||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
этот смайлик относится к моей каше в голове по данной теме
--------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Так а форум на что? Задавай вопросы - будем разбираться (правда, не в этом топике). Это сообщение отредактировал(а) Idsa - 10.6.2009, 13:02 |
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
я книжки пока читаю
"Nhibernate In Action" --------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
На тот случай, если кто-то ждет (ну а вдруг ) следующую статью, решил предупредить, что она появится ближе к конце месяца: защита у меня
PashaPash, ты не мог бы закидать меня ссылками по поводу того, как неPOCO негативно влияет на юнит-тестирование и архитектуру в целом? А то ничего толкового по этому поводу найти не удалось... а у самого опыта в этом деле минимум. |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Еще 5 копеек от меня
Мне бы хотелось получить как можно больше мнений (особенно негативных) по поводу уже написанных статей. Что не понравилось? Что показалось не очень понятным? и т. д. По личной переписке знаю, что некоторые винградовцы почитывают мои статьи, поэтому прошу не стесняться в выражениях и говорить мне все, как есть (здесь, в личке, в комментах - хоть где) |
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
Лучше публично. И до сих пор ждем: Правда это можно и погуглить, но сейчас катастрофически нет времени, так что очень хочется кратки и живой пример. --------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
На юнит-тестирование - очень простое влияние. неPOCO (точнее, отсутствие Persistence Ignorance) требует базы данных для прогонки каждого теста. При этом: 1. Состояние базы должно быть одинаковым для каждого запуска 2. Результат не должен зависеть порядка запуска Этого довольно трудно достичь, а после достижения - легко поломать. Кроме того, базы данных - не слишком быстрая вещь, когда дело доходит до тестов. В результате тесты становится трудно писать, они долго выполняются, и девелоперы просто забивают на них. А в целом на архитектуру - очень размытое понятие. Напиши что-нибудь крупное на EF, узнаешь ;) Добавлено через 1 минуту и 8 секунд
Посмотри http://blog.wekeroad.com/subsonic/subsonic...mplerepository/ |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
||||
|
||||
PashaPash |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Ок, простой пример.
Как должен выглядеть CustomerService.CreateCustomer в случае EF? Чтобы он работал во время тестов без базы, а в живой системе - с базой, и честно в нее сохранял без дополнительной пляски с бубном. |
||||
|
|||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
Как на счет Mock ?
--------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
PashaPash, так уж сложилось, что на данный момент я еще не овладел искусством Unit-тестирования... Видимо, именно поэтому даже после того, как ты привел пример, я не понимаю, в чем разница между POCO/неPOCO в данном случае.
PashaPash, ты как-то заводил разговор о реализации Repository под EF v. 1... Вот блог-пост на эту тему: http://blog.keithpatton.com/2008/05/29/Pol...+Framework.aspx |
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Idsa, трудность как раз не в том, чтобы реализовать IRepostory, как по ссылке. Трудно реализовать точно такой же IRepository, но уже без EF - т.е. чтобы он корректно сохранял объекты-наследники EntityObject. Попробуй просто набросать код CreateCustomer в примере выше. С использованием репозитория по ссылке, но со второй половиной - работой того же кода без базы данных.
SLeN, Mock - это хорошо, но тоже не слишком тривиально в случае EF. Приведешь пример? |
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
Не, - я от Ef пока отказался в пользу Nhibernate. p.s. Меня интересует Object First (DDD) а Ef пока этого не позволяет + я влюбился в рефлекшн оптимизатор Nhibernate =) Это сообщение отредактировал(а) SLeN - 22.6.2009, 11:45 --------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
SLeN, а почему не в пользу родного L2S?
|
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
На мой взгляд Nhibernate более зрелая ( большинство проблем с которыми можно столкнутся в реальных проектах - уже столкнулись и решили), за многие годы в нее влилось куча гениальных решений (как я уже говорил один только рефлекшн оптимизатор чего стоит), + у её поведение для меня понятно на интуитивном уровне (тоесть - еслибы я участвовал в разработке некой ORM то использовал бы очень похожие решения).
Я пока с ней только осваиваюсь, но еще не было случая когда бы она меня огорчила =) --------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
SLeN, а что рефлекшн оптимизатор умеет?
|
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
Он умеет инжектировать свой код в классы тем самым используя рефлексию только 1 раз при запуске, а после через инжектированый код добираться до приватных членов - тем самым позволяя бизнес уровню поддерживать инкапсуляцию несмотря на использование ORM.
--------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
SLeN, эта куча гениальных решений точно так же влилась в Linq2SQL + добавилась нормальная поддержка Linq.
Linq to SQL тоже использует кодогенерацию "один раз при запуске" и потом заливает данные прямо в приватные члены, без рефлекшена. Просто MS не выпячивал это как супер-рефлекш-оптимайзер. Поработай с L2S немного, он намного интуитивнее остальных ORM. Все ORM одинаковы - это реализация одного и того же паттерна, отличаются только детали. Насчет зрелости NHibernate - прошел год (!!!) от релиза .net 2.0 до поддержки 2.0, nullable и generics со стороны NHibernate. Полноценной поддержки Linq, на том уровне, на котором она есть в L2S (выборка только использованных в коде полей, лямбды, вылизанная кодогенерация) придется ждать еще года полтора. А в L2S это все появилось уже полтора года назад. Много всяких "рефлекш оптимайзеров и инжектирований кода" в нем уже работает, проверено на куче реальных проектов. NHibernate обречен ползти в хвосте, по довольно очевидным, но независящим от него причинам. |
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
HQL
позволяет
вылизанная кодо генерация тоже присутствует. лямбд - да не встречалось, но я пока использую версию 1.20 и не смотрел чего в 2.0 запихнули ;) но и в 1.20 достаточно много стратегий выборки - HQL, QBC, QBE В общем хочется пока поиграть с этой игрушкой =) , тем более что она очень гибкая и поддерживает кучу стратегий, ну а после того как почувствую себя в ней достаточно уверенно - взглянуть на остальное, к томуже будет уже с чем сравнивать Это сообщение отредактировал(а) SLeN - 23.6.2009, 10:22 --------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
PashaPash |
|
||||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Голый SQL тоже позволяет выбирать только определенные свойства. Вся разница в уровне. HQL позволяет это делать в виде строго типизированного кода? что-то вроде
А в Linq 2 SQL - одна - LINQ, и она рвет эти "много" с большим отрывом. За счет преобразования кода C# в SQL запросы. Сначала нужно смотреть стандартные - встроенные в framework - вещи. А не порты с java, отстающие в развитии на 3 года. |
||||||
|
|||||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
PashaPash,
бес понятия я еще не работал с этой возможностью. тоже прокомментировать не могу, по той же причине - я еще в плотную не работал с этим думаю нужно отложить продолжение дискуссии Nhibernate vc L2S на какоето время, так как я пока не подходящий оппонент --------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Думаю, не ошибусь, если предположу, что это был риторический вопрос Откуда в HQL строгая типизация?! Там разве что параметры есть... но это пшик по сравнению с LINQ+Lambda. |
|||
|
||||
SLeN |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 137 Регистрация: 8.12.2006 Где: SPB Репутация: 1 Всего: 4 |
Решил таки не пренебрегать советами и ознакомиться с L2S и уж после сделать выбор в сторону одной из технологий
--------------------
Православные не проходите мимо! Люди нуждаются в вас |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
||||
|
||||
PashaPash |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 8 Всего: 49 |
Idsa, в приватные - потому что есть аттрибут маппинга DataAttribute.Storage, который Gets or sets a private storage field to hold the value from a column. За кодогенерацию записи значения в поле отвечает System.Data.Linq.SqlClient.ObjectReaderCompiler+Generator.GenerateStoreMember, в MemberInfo спускается отрефлекченное поле с именем DataAttribute.Storage
OpCodes.Stfld вполне так сторит значение в private field. Вот примерно так. |
|||
|
||||
vlsaf |
|
|||
Опытный Профиль Группа: Участник Сообщений: 423 Регистрация: 9.5.2007 Репутация: нет Всего: 1 |
А можно ли вызывать хранимые процедуры, используя EF? Дело все в том, что нужно отфутболить уже наработанную бызу в облако. В базе есть хранимки, которые делают некие бизнес - операции. И очень не хотелось бы это все переписывать. Это первое.
А второе. Также есть для некоторых таблиц хранимые процедуры, отвечающие за валидные операции. Например имеется таблица Adress. И для нее четыре хранимые процедуры. Adress_Insert Adress_Select Adress_Update Adress_Delete Причем внутри хранимок также есть некий анализ на непротиворечивость данных с другими таблицами. Вот и вопрос. Можно ли существующие хранимые процедуры использовать в EF? |
|||
|
||||
Idsa |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
vlsaf, на оба вопроса ответ "да, но...".
Буду говорить о EF v1, ибо не знаком с этими аспектами EF4. 1. Да вызывать хранимые процедуры можно, но красиво (через ObjectContext) это можно сделать не со всеми (зависит от возвращаемого значения). Подробности в гугл "EF stored procedures". 2. Можно назначить хранимые процедуры для операций Update/Insert/Delete. С Select'ом не прокатит - придется делать вручную. |
|||
|
||||
coddy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.10.2009 Репутация: нет Всего: нет |
Доброго времени суток!
Подскажите с таким вопросом: Есть спискок объектов EF (v4) который получается выборкой из БД. И отображается в DataGridView (на данный момент winforms, но думаю скоро переделаю на WPF). Как после изменения данных в гриде, занести эти изменения в БД? |
|||
|
||||
DenWPF |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
coddy тема называется "Цикл статей по Entity Framework" !
Прошу больше статей по EF 4 |
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |