Лучшие практики для уровня связи баз данных для SQL Server и .NET - PullRequest
0 голосов
/ 06 марта 2012

Меня попросили за пару часов внедрить новое приложение ASP.NET, которое должно обращаться к базе данных SQL Server.

Мне интересно, каков наилучший (и самый быстрый) метод доступа к базе данных, хорошая практика - создать слой доступа к данным, но как бы вы его создали?

  1. Использование ADO.NET и создание метода runQuery(query,parameters), а затем по одному методу для каждого запроса, например:

    getRowByID(id){
       runQuery("SELECT..",id);
    }
    
    getRowsByDate(date){
       runQuery("SELECT..",date);
    }
    
  2. Использование встроенных мастеров в Visual Studio? (ужасное решение, но очень быстрое)

  3. Используя что-то вроде nHibernate, Linq или ...?

Лично я бы выбрал первый способ, который не слишком сложен, мне не нравится автоматически генерируемый код, поэтому я бы отбросил второй, может быть, третий ??

Дайте мне знать, что вы думаете, и если у вас есть веский пример.

Спасибо

Ответы [ 6 ]

1 голос
/ 06 марта 2012

Сделайте вариант 3 и просто используйте BLToolkit , вот ссылка -> http://www.bltoolkit.net/Doc.Linq.ashx Просто посмотрите демонстрационный проект

Если вы хотите иметь простую абстракцию, выберите BLToolkit, а не EF

1 голос
/ 06 марта 2012

Я всегда предпочитаю хранимые процедуры.Они быстрые и простые в тестировании, параметризованные значения легко подключаются, и в случае, если что-то пойдет не так, это действительно легко проверить, выполнив SP напрямую.Также легко вносить изменения позже, а также использовать нулевые параметры по умолчанию и тому подобное.Вы в основном / только делаете запросы SELECT?

1 голос
/ 06 марта 2012

getRowByID (ID) { getRowsByDate (date) {

Две линии, чтобы уволить тебя. Используйте ORM. Используйте что-то, что поддерживает LINQ. Если вы хотите что-то быстрое и легкое, используйте BLToolkit.

2.Использование встроенных мастеров в Visual Studio

Снова выстрелил.

3. Используя что-то вроде nHibernate, Linq или ...?

Точно.

0 голосов
/ 06 марта 2012

Я предпочитаю использовать EF или Linq to SQL. Быстро и первым. И мне не нужно писать операторы SQL в коде. Так как это один из объектов Language Integrated Query (LINQ). Мне также нравится Intelliense из Visual Studio, отображающий имя таблицы, имена столбцов в LINQ, и это также сокращает мое время отладки.

0 голосов
/ 06 марта 2012

Таким образом, как сказал @TomTom, использование ORM, такого как Entity Framework plus LINQ, является очень быстрым способом доступа к базе данных, и это позволяет вашему приложению быть очень гибким в том смысле, что вы можете легко изменять фоновую базу данных без изменения строки.на уровне доступа к данным (вы просто изменили бы провайдера на правильный).

Конечно, использование ORM будет означать, что вы получите автоматически сгенерированный код, и он, конечно, не будет таким быстрым, как если быВы писали свой код от руки.Тем не менее, это самое быстрое решение, которое вы найдете в отношении доступа к данным, предоставленного Microsoft.

0 голосов
/ 06 марта 2012

Если мне нужно быстро запустить приложение, использующее базу данных - я использую Linq to Sql. Это просто и чисто.

...