c # /. net project как сохранить / организовать запросы к базе данных - PullRequest
4 голосов
/ 27 мая 2011

В моем первом проекте на c # мне нужно подключиться к серверу базы данных для нескольких запросов только для чтения. Кто-нибудь поделится опытом по организации запросов в проект? в настоящее время я просто жестко запрограммировал строки запроса в исходных файлах c # при необходимости. но это трудно поддерживать, и когда что-то меняется на стороне сервера базы данных, у меня проблемы. Или я должен поместить все строки запроса в файл .config, используя appsettings? Есть ли лучшие способы? У меня нет прав на сохранение хранимых процедур на сервере. Благодарю.

Ответы [ 2 ]

5 голосов
/ 27 мая 2011

Есть разные ответы с разной степенью сложности в зависимости от ваших потребностей.За исключением самых маленьких проектов, я создаю два проекта библиотеки классов для доступа к базе данных: один, содержащий модель данных и запросы, и другой тестовый проект, который выполняет запросы первого проекта.В простых решениях вы используете эту библиотеку в ASP.NET или другом проекте.

Вам настоятельно рекомендуется изучить ORM, например NHibernate или VS 2008 / .NET 3.5Linq-To-SQL или Entity Framework .Как минимум, вы ДОЛЖНЫ не забыть использовать параметризованные запросы , если у вас есть веб-приложение.

В более сложных решениях вы полностью инкапсулируете базу данных в ее собственную службу или уровень.По моему опыту, у меня был уровень доступа к данным, который работал в его собственной службе Windows Communication Foundation, в качестве службы Windows, и это была единственная служба, которая могла напрямую взаимодействовать с базой данных или знала модель данных базы данных.Он будет выполнять все взаимодействие с базой данных, а затем преобразовывать данные в различные модели данных, которые считываются другими уровнями.Я обычно создаю проект под названием «Контракты», который содержит все интерфейсы и модели данных, которые передаются от уровня данных к остальной части системы.Причина, по которой вы делаете это, заключается в том, что вы избегаете упомянутой вами боли: вы можете обновить базовую базу данных, слой ORM и «общие модели данных», а затем вообще не изменять другие уровни.

2 голосов
/ 27 мая 2011

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

Тем не менее, если ваши запросы не ожидают изменения своих параметров, вы можете использовать хранимые процедуры. Этот подход также поможет повысить ваши запросы, поскольку план выполнения будет храниться в базе данных.

...