Ценность ORM'ов
От: Neco  
Дата: 25.03.10 14:08
Оценка:
Со того времени, когда понял что же такое Linq2Sql в голове жужжит мысль о противопоставлении ORM'ов типа hibernate и Linq-подхода.
Т.е. для меня налицо два совершенно разных направления:
1. Классический ORM: делаем класс, объявляем правила маппинга. Экземпляры данного класса являются интересующими объектами. Такой путь зарождает в себе причину появления отложенной загрузки из БД, поскольку не все поля нам всегда нужны.
2. ORM в стиле Linq: построение каркаса запроса и формата выдачи данных на нативном языке, генерация sql-выражения точно соответствующего каркасу запроса, динамический маппинг на динамический класс.

И вот мне непонятно — чем может быть привлекателен классический ORM по сравнению с LinqORM? Я сейчас не хочу привязываться с конкретным реализациям и сопоставлять, к примеру, hibernate и Linq2SomeDatabase — я хотел бы просто сравнить два подхода к связыванию данных с объектами. На данный момент Linq2Sql-подход мне представляется идеальнейшим подходом, который делает код похожим на тот же PL/Sql плюс рядом вся инфраструктура конкретного языка, к которой уже так привык. Ужасным кажется только неудачность названий. Linq2Sql — это конкретное решение, завязанное на конкретную СУБД. Просто Linq — недобор, это всего лишь способ обращения к данным. Должно быть какое-то промежуточное название, типа Linq2Database, чтобы выражать общий принцип, семейство продуктов — а такого нет.
Кстати, было бы неплохо узнать у кого microsoft стырил идею Linq2Sql и что есть подобного кроссплатформенного и устоявшегося в остальном — немелкомягком мире?

Итого вопрос: какие недостатки у Linq-подхода?
P.S. кажется можно было бы сразу помещать вопрос в СВ — но, надеюсь, пронесёт.
всю ночь не ем, весь день не сплю — устаю
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.