LinqToSQL - это то же самое, что и Linq? - PullRequest
7 голосов
/ 30 марта 2009

Я только что читал о прекращении работы Linq to SQL. Какое-то время я вообще откладывал изучение Linq. Даже на asp.net, когда я последний раз проверял, в их учебниках по доступу к данным использовались адаптеры таблиц и классы bll. Тогда есть уроки linq. Теперь, когда я прочитал это и что Entity Framework - это новый путь, означает ли это все «вещи» Linq, о которых я читал в течение полутора лет, насколько это здорово и т. Д., Все это просто ушел? Кажется, никто никогда не выбирал правильный способ сделать что-то или хотя бы какой-нибудь стандартный способ использования продуктов MS. И я понимаю, что нельзя сказать, что один путь подходит для всего. Но в данном конкретном случае я не понимаю, почему не может быть каких-либо ограничений доступа к данным.

Или Linq To SQL является частью ORM в Linq? Что именно я узнал бы сейчас, если бы я хотел использовать ORM? Я прочитал несколько вещей в StackOverflow, но ни один из них не помог мне понять, что делать.

Кажется, что nHibernate может быть лучше, чем любой из вариантов Microsoft. Да, я знаю, что есть другие (дозвуковые, и другие были упомянуты в различных SO).

Спасибо.

Ответы [ 6 ]

13 голосов
/ 30 марта 2009

номер

LINQ to SQL построен на основе LINQ, который является одной из фундаментальных дополнительных языковых функций в .NET 3.5 Framework.

Технически другие ORM могут реализовывать свои собственные системы LINQ, например, NHibernate уже использует LINQ to NHibernate. Это поверх тех, которые предусмотрены в фреймворке, таких как LINQ to XML, LINQ to Objects и т. Д.

10 голосов
/ 30 марта 2009

Entity Framework, конечно, не означает, что LINQ уходит - Entity Framework сам по себе является поставщиком LINQ!

LINQ - это целая коллекция технологий, и более того - это шаблон , который вы также можете реализовать для своего собственного поставщика данных.

LINQ to SQL - только один пример этого шаблона. Что бы это ни стоило, я думаю, что LINQ to SQL больше не подчеркивается, а скорее исчезает, но мы увидим ...

Лично я считаю LINQ to Objects самым полезным провайдером LINQ в первую очередь:)

5 голосов
/ 30 марта 2009

Linq to sql - это лишь один из многих провайдеров linq (есть linq для db4o, linq для starcounter, linq для объектов, linq для ado и многие, многие другие). Платформа сущностей имеет своего собственного поставщика linq, называемого linq to enteties. Ваш год чтения о linq не потерян.

3 голосов
/ 30 марта 2009

Linq намного больше, чем Linq-to-SQL. Такие вещи, как Linq-to-Objects и Linq-to-XML, являются частью технологии, например.

Я сомневаюсь, что они уходят! Скрещенные пальцы. ; -)

2 голосов
/ 30 марта 2009

LINQ не ушел. У LINQ to SQL тоже нет, но это не стратегическая платформа Microsoft для доступа к данным, а Entity Framework. EF использует LINQ to Entities, поэтому, если вы потратили время на изучение LINQ, он все равно будет действительным и полезным.

LINQ не является технологией, ориентированной на конкретный продукт. Легко использовать мощь и гибкость в коллекциях (почти) всех видов. например.

List<MyType> myList = new List<MyType>();
// populate the list here
var filteredResults = from o in myList
                      where o.property == "hello world"
                      select o;

(концептуально) допустимо, даже если приведенный здесь пример кода некорректен.

0 голосов
/ 30 марта 2009

LINQ - это библиотека для обработки последовательностей данных. И это довольно круто. Эти последовательности данных могут быть чем угодно, что реализует IEnumerable, или это могут быть любые последовательности, предоставляемые адаптерами.

Linq to SQL - это адаптер, который позволяет базе данных SQL предоставлять последовательности данных, совместимые с LINQ.

Существует также Linq to XML, который является адаптером, который позволяет вам обрабатывать документ XML как последовательность данных, позволяя LINQ обрабатывать его.

LINQ - это просто язык запросов, и он очень хорош в том, что делает. Это не имеет ничего общего с базами данных или SQL. Определенно стоит научиться просто уметь легко обрабатывать коллекции в памяти.

...