Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LinQ vs NHibernate, Помогите решить проблему с данными 
V
    Опции темы
Bladerender
Дата 10.7.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Товарищи. Помогите решить такую вот проблемму. Есть у меня программа,  которая оперирует с данными, которые хранятся в обьектах.
Раньше эти данные сериализировались а потом в эти обьекты подгружались. Но из-за того что структура немного меняется классов, надумалось перейти на БазуДанных и данные хранить там. То теперь стала задача. Каким образом данные те что хранятся в базе данных преобразовать в объекты классов, что у меня в программе. Читал что есть NHibernate, что своим маппингом может преобразовать данные базы в обьекты, которые мне нада и появилось вот щас LinQ. Насколько я понял то это равноценные заменители или как? Чем посоветуете делать?
PM MAIL   Вверх
HalkaR
Дата 10.7.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Нет, LINQ - это не ORM. Точнее он может использоваться как ORM, но в нем мало возможностей. Т.е. он поддерживает только прямую выборку из базы где, один класс==одна таблица. Есть ADO.NET Entity Framework - это довольно мощный ORM от Microsoft (правда он еще beta).
PM MAIL   Вверх
PashaPash
Дата 10.7.2008, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 4
Всего: 49



HalkaR, вообще-то поддерживается Single-Table inheritance. 

IMHO, для уровня топикастера, Linq To SQL - лучший выбор.


--------------------
PM MAIL WWW   Вверх
Idsa
Дата 10.7.2008, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 5
Всего: 62



Цитата(HalkaR @  10.7.2008,  20:35 Найти цитируемый пост)
Есть ADO.NET Entity Framework - это довольно мощный ORM от Microsoft (правда он еще beta).

Я сейчас как раз передываю DAL в одном проекте с LINQ To SQL на Entity Framework... Я так и не нашел, какая версия EF включена в SP1 beta, но вроде как Scott Gu заявлял, что если продукты в финальном SP1 и будут меняться, то незначительно.

Цитата(PashaPash @  10.7.2008,  21:54 Найти цитируемый пост)
IMHO, для уровня топикастера, Linq To SQL - лучший выбор. 

Я бы не сказал, что с EF работать гораздо сложнее, чем с LINQ To SQL. Но т. к. при этом EF предоставляет больше возможностей и фиксит существенные недочеты LINQ To SQL (собственно, именно поэтому DAL я и портирую), я рекомендую в любом проекте, нуждающемся в ORM, использовать EF (или nHibernate).
EF действительно лучше LINQ To SQL. Немудрено, ведь LINQ To SQL и ORM-то по большому счету не является. Сравнение же EF и nHibernate гораздо сложнее: оба фреймворка предоставляют практически одинаковую функциональность (у nHibernate и поддержка LINQ есть).
Есть неплохая статья, сравнивающая EF с ADO.NET, LINQ To SQL и nHibernate: http://blogs.msdn.com/dsimmons/archive/200...-framework.aspx

Цитата(Bladerender @  10.7.2008,  20:11 Найти цитируемый пост)
Раньше эти данные сериализировались а потом в эти обьекты подгружались. Но из-за того что структура немного меняется классов, надумалось перейти на БазуДанных и данные хранить там. То теперь стала задача. Каким образом данные те что хранятся в базе данных преобразовать в объекты классов, что у меня в программе.

Подход остается тот же: сериализация, сохранение, чтение, десериализация. Единственное, что изменится - хранилище данных.

Цитата(Bladerender @  10.7.2008,  20:11 Найти цитируемый пост)
Насколько я понял то это равноценные заменители или как? Чем посоветуете делать? 

Судя по описанию, у Вас не намечается очень сложной схемы базы. Поэтому вряд ли Вам удастся ощутить преимущества EF в плане маппинга. Так что можете использовать любую из трех ORM. Правда, если база у Вас не на Sql Server'е, то выбор сокращается до EF и nHibernate.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Idsa
Дата 10.7.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 5
Всего: 62



Только что вот тут выяснил, что в sp1 beta входит Entity Framework beta4. Они, правда не называют его beta4, но в нем есть некоторые отличия от beta3, но при этом это еще не релиз: еще есть баги (я сам один словил).


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.