LINQ to SQL или классический ADO.NET? - PullRequest
3 голосов
/ 15 июня 2010

Я спрашиваю себя много раз, прежде чем приступить к написанию нового приложения или библиотеки доступа к данным. Должен ли я использовать LINQ to SQL или классический ADO.net, я использовал и время разработки, которое трачу на создание приложения с LINQ для SQL похож на 1/3 по сравнению с ADO.net.

Единственное, что мне нравится в использовании LINQ to SQL, - это то, что мне не нужно проектировать доменные объекты. LINQ делает это для меня и избавляет меня от необходимости тратить время на скучные вещи: P Но подходит ли LINQ to SQL для больших масштабов? проекты, есть ли издержки, которых мы можем избежать при использовании ADO.net?

Ответы [ 7 ]

4 голосов
/ 15 июня 2010

Лично я бы не стал возвращаться в ADO.NET для DAL. Однако помните, что с Linq2Sql вы привязаны к MS SQL Server, что я считаю недопустимым.

Может также рассмотреть другие DAL / ORM, такие как NHibernate, SubSonic, Entity Framework (MS), LightSpeed, Castle ActiveRecord (на основе NHibernate). Некоторые из них (например, NHibernate и Entity Framework) также имеют дополнительные интерфейсы запросов Linq.

4 голосов
/ 15 июня 2010

Я люблю LINQ to SQL; легко работать с вашей моделью данных. Если у вас есть .NET 4, рассмотрите возможность использования ADO.NET Entity Framework, поскольку это будущее, и оно поддерживает несколько баз данных.

При использовании LINQ to SQL возникают небольшие издержки, если вы используете запросы LINQ к своей базе данных, но я думаю, что в большинстве случаев это незначительно. У нас были хорошие показатели. Кроме того, он поддерживает хранимые процедуры, поэтому у вас всегда есть к чему обратиться с точки зрения производительности.

1 голос
/ 15 июня 2010

LINQ to SQL может быть полезен в среде разработки, которая тесно связана с Microsoft, и в ближайшие несколько лет не ожидается никаких отклонений от Microsoft. Однако для обеспечения возможности расширения для других сред СУБД я бы порекомендовал Entity Framework поверх LINQ to SQL с оговоркой о том, что версия 2008 года по-прежнему имеет некоторые раздражающие ограничения (пока не уверены в 2010 году).

Я бы никогда не использовал ADO.NET напрямую, если бы мог помочь. Это главным образом потому, что я, как разработчик, в моих интересах использовать инструменты, которые можно применять в разных областях. В настоящее время я использую LINQ to Entities и Entity Framework для связи с базой данных Oracle. LINQ to SQL не будет работать для этого.

1 голос
/ 15 июня 2010

Мы - солнечная компания стоимостью 2,5 млрд долларов, и мы использовали L2S в качестве основы для всех наших производственных операций.Мы не сожалеем.Один огромный плюс для нас заключается в том, что все наши запросы используют LINQ.Это означает, что все наши запросы строго типизированы.Итак, после изменения схемы компилятор скажет нам, какой из наших запросов нужно исправить.Конечно, если вы направите все свои запросы через хранимые процедуры, у вас не будет этого преимущества.

1 голос
/ 15 июня 2010

Если для написания версии LINQ-to-SQL вам потребуется 1/3 времени, то у вас останется 2/3 первоначального времени, выделенного для других задач, таких как настройка производительности.

0 голосов
/ 15 июня 2010

Нет никаких оснований для ADO.NET через Linq to SQL

0 голосов
/ 15 июня 2010

См. это .Если вы экономите время и облегчаете свою работу, стоит ли это того?Если бы вы не знали о конкретных проблемах, которые вы могли бы решить путем ручного кодирования доступа к данным, я бы не стал беспокоиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...