Задать вопрос
@Morphine43
Техник АСУП

Как правильно работать с БД MS SQL в С#?

Собственно, есть приложение. Собирает данные с устройств автоматизации и пишет в базу. Сроки реализации не критичны. В перспективе - будет поддерживаться людьми с начальным уровнем в программировании
Есть варианты:
1. Вызов хранимых процедур
2. Написание своего велосипеда, а-ля ORM
3. Использовать Linq
или другие варианты - есть время на изучение и внедрение
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Для начала я бы определисля с нагрузкой. Как часто пишутся данные, каким образом их нужно выбирать. Для большинства случаев, более оправдано использовать ORM. Еще лучше, использовать одну из популярных ORM(EF, NHibernate, etc.). Если у вас будет какой-то очень огромный проект с выдающимся количеством транзацикций по обработке данных в секунду, то здесь лучше pure SQL(или же компромисс: на сложные операции pure SQL, на шаблонные, коих в любом проекте предостаточноб ORM).

ORM(например, в случае EF, который я использую) позволит избежать большей части "monkey job":
-Запросы осуществляются к DbSet-ам(типизированными доменными моделями), что дает нам строгую типизацию => меньше ошибок.
-Cами доменные модели наполняются виртуальными свойствами на связные сущности(для реализации one-to-one, one-to-manu, many-to-many отношений), что позволяет нам избавиться от кучи Join-ов в будущем.
-Используя Linq to entity, мы можем возвращать в результате запроса нужный объект, что делает обход выборки результата проще(меньше лишних инициализаций => меньше кода => меньше возможных ошибок и багов).

В общем, ORM экономит много времени(а, соответственно, ресурсов, нервов и т.д.). Да и никто не мешает потом использовать pure-SQL: в случае если ORM неоптимально конвертирует запрос в SQL и вы хотите его переписать. Впоследствии, все это(ORM, ADO.NET ... <любой другой источник данных>) оборачивается репозиторием - и получается у вас Dаtа Access Layer.

Upd: исправлены опечатки.
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
А чем не угодили обычные SQL запросы?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы