Методы извлечения данных из базы данных - PullRequest
1 голос
/ 21 декабря 2010

Я готовлюсь к запуску проекта веб-приложения на C # и просто хочу высказать некоторые мнения относительно извлечения данных из базы данных.Насколько я могу судить, я могу либо использовать код C # для доступа к базе данных из кода (например, LINQ) моего веб-приложения, либо я могу вызвать хранимую процедуру, которая соберет все данные и затем прочитает их в несколько строккода в моем коде позади.Мне любопытно узнать, какой из этих двух подходов или любой другой подход будет наиболее эффективным, элегантным, пригодным для будущего и наиболее простым для тестирования.

Ответы [ 3 ]

2 голосов
/ 21 декабря 2010

Самый перспективный способ написания вашего приложения - абстракция между вами и вашей базой данных. Для этого вы хотели бы использовать ORM некоторого вида. Я бы порекомендовал использовать либо NHibernate, либо Entity Framework.

Это даст вам преимущество, заключающееся в том, что вам придется писать запросы только один раз, а не несколько раз (например, если вы решите изменить свою базу данных, «переходя с mssql на mysql или наоборот»). Это также дает вам преимущество наличия всех ваших данных в объектах. С которым гораздо проще работать, чем с необработанными ado Datatables или DataReaders.

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

  2. Я бы рекомендовал использовать ORM, например, nHibernate или Entity Framework вместо подхода sproc / ADO. Между двумя ORM, я бы, вероятно, предложил EF для вас, где вы только что освоили это. EF не так мощен, как nHibernate, но имеет более короткую кривую обучения и довольно устойчив.

1 голос
/ 21 декабря 2010

Большинству разработчиков нравится вводить хотя бы один слой между кодом позади и базой данных.

Кроме того, существует множество стратегий доступа к данным, которые люди используют на этом уровне.ADO.NET, Entity Framework, Enterprise Library NHibernate, Linq и т. Д.

Во всех них вы можете использовать SQL-запросы или хранимые процедуры.Я предпочитаю хранимые процедуры, потому что их легко написать и развернуть.Другие предпочитают использовать параметризованные запросы.

Когда у вас так много вариантов, это обычно указывает на то, что действительно нет явного победителя.Это означает, что вы, вероятно, можете просто выбрать направление и пойти по нему, и у вас все будет хорошо.

Но вы действительно не должны использовать непараметрические запросы, и вы не должны делать это в коде, а вместо этогов отдельных классах

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