Собственные запросы и хранимые процедуры против ORM - PullRequest
0 голосов
/ 20 октября 2011

Поскольку популярность ORM, таких как LINQ to SQL и Entity Framework, растет, это заставляет меня задавать вопросы об использовании собственных запросов и хранимых процедур.

Я естественно ориентируюсь на SQL и прямой контакт с RDBMS.Мне нравится полный контроль над тем, что происходит, и мне нравятся мои следы, показывающие, что именно я вызываю в коде (хранимые процедуры и т. Д.).

Но каковы преимущества ORM, которые я упускаю?Это просто процесс быстрого развития?Отсутствие необходимости администрировать базу данных и включенные объекты?

Что я упускаю из-за того, что не использую EF и LINQ to SQL?

1 Ответ

1 голос
/ 20 октября 2011

Я думаю, что наибольшее влияние здесь оказывает производительность; очень просто использовать EF (или любой другой ORM) для создания простых интерфейсов CRUD. Но проблемы возникают, когда вы не до конца понимаете, что происходит.

Например, предположим, что большой объект с несколькими вложенными коллекциями; У ORM есть предел, который понимает, как эти данные интегрированы, и должен возвращать данные, денормализованные для материализации этого объекта. И это может оказать огромное влияние на передачу данных.

Другое дело о производительности. Возможно, вы получаете пользовательский интерфейс, который должен выполнять много вычислений, или обновлять большой объект и его зависимости. В этом случае я предлагаю использовать собственный доступ (хранимые процедуры и т. Д.), Чтобы полностью раскрыть потенциал вашей СУБД.

Резюме: простые интерфейсы, ORM; средние и сложные интерфейсы, хранимые процедуры.

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