Доступ к базе данных в веб-сервисе - PullRequest
2 голосов
/ 12 октября 2010

В настоящее время я работаю над реализацией веб-службы для комбинированного веб-приложения / приложения для настольных компьютеров (т. Е. Доступа из разных источников).

Теперь есть два вопроса, на которые я не могу найти ответ:

  1. Как мне получить доступ к базе данных правильным способом (статический класс? Singleton? DI?)? Я не нашел никакой информации об использовании веб-службы в контейнере DI, чтобы помочь с доступом к базе данных.

  2. А как насчет доступа к записи? Это правильный способ предложить возможность записи в базу данных? Конечно, запросы будут защищены с помощью идентификатора пользователя и ключа.

Примечание: это не wcf, а обычный веб-сервис (т.е. расширение файла asmx).

1 Ответ

1 голос
/ 13 октября 2010

Существует множество «правильных» способов доступа к базе данных из веб-службы. Лично я часто использую ADO.NET внутри статического класса (или, точнее, класса со связкой статических методов), который обычно возвращает DataTable (заключенный в DataSet, который можно сериализовать и, таким образом, легко вернуть из веб-службы ). Вы также можете использовать ORM (например, NHibernate), хотя они неизменно имеют большие издержки, чем ADO.NET, и, следовательно, являются потенциальным источником проблем с нагрузкой на вашем сервере.

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

...