Что лучше: LINQ to SQL или LINQ to Entities?
пятница, 21 ноября 2008,
Александр Краковецкий
Дать ответ однозначно, конечно же, никто не решится. Все зависит от ситуации, скажет он и будет прав. Вот как раз о ситуациях поговорим подробнее.
Курсивом выжелены те пункты, которые приминимы в обоих случаях.
Лучше использовать Linq To SQL, если я хочу...
- написать ORM приложение с маппингом объектов базы и бизнес-объектов 1 к 1
- написать ORM приложение с иерархическими наследованиями (inheritance hierarchies), которые хранятся в одной таблице
- использовать свои классы, а не генерированные, или наследоваться от базового класса, или реализовать интерфейс
- использовать LINQ для своих запросов
- использовать ORM, но также хочу, чтобы все это было высокопроизводительным, и я имел возможность оптимизировать производительность методом редактирования хранимых процедур и компилируемых запросов
Лучше использовать Linq To Entities, если я хочу...
- написать приложение, которое будет работать с различными базами данных (или же выбор базы данных еще не сделан, но писать надо - прим. авт.)
- определить модели для моего приложения для конкретной области
- написать ORM-приложение, которое будет иметь маппинг базы данных и бизнес-объектов 1 к 1 или же отличающуюся структуру
- использовать ORM-проект с иерархическими наследованиями, которые могут иметь альтернативные источники хванения схем (отдельная таблица для иерархии, отдельная таблица для каждого класса, отдельная таблица для всех данных, которые относятся к специфическому типу)
- использовать ORM, но также хочу, чтобы все это было высокопроизводительным, и я имел возможность оптимизировать производительность методом редактирования хранимых процедур и компилируемых запросов
Как видим, в простых ситуациях лучше использовать LINQ to SQL, в более сложных - LINQ to Entities.