Цитата(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/2008/05/17/why-use-the-entity-framework.aspx
Цитата(Bladerender @ 10.7.2008, 20:11 ) | | Раньше эти данные сериализировались а потом в эти обьекты подгружались. Но из-за того что структура немного меняется классов, надумалось перейти на БазуДанных и данные хранить там. То теперь стала задача. Каким образом данные те что хранятся в базе данных преобразовать в объекты классов, что у меня в программе. |
Подход остается тот же: сериализация, сохранение, чтение, десериализация. Единственное, что изменится - хранилище данных.
Цитата(Bladerender @ 10.7.2008, 20:11 ) | | Насколько я понял то это равноценные заменители или как? Чем посоветуете делать? |
Судя по описанию, у Вас не намечается очень сложной схемы базы. Поэтому вряд ли Вам удастся ощутить преимущества EF в плане маппинга. Так что можете использовать любую из трех ORM. Правда, если база у Вас не на Sql Server'е, то выбор сокращается до EF и nHibernate. |