LINQ-to-SQL против хранимых процедур?

В целом я сторонник размещения linq всего в хранимых процедурах linq-to-sql по всем причинам, о которых sql-to-linq администраторы баз данных linq-query-syntax твердили годами. В случае language-integrated-query с Linq действительно не будет stored-procedure разницы в производительности stored-procedures с простыми CRUD-запросами.

Но linq-query-syntax принимая это решение, имейте linq в виду несколько вещей: использование stored-procedure любого ORM тесно связывает linq2sql вас с вашей моделью данных. Администратор linq2sql баз данных не имеет права linq-to-sql вносить изменения в модель language-integrated-query данных, не заставляя вас linq изменять скомпилированный sproc код. С помощью хранимых процедур sql-to-linq вы можете в какой-то степени stored-procedures скрыть такого рода изменения, поскольку sql-to-linq список параметров и наборы linq результатов, возвращаемые sproc процедурой, представляют linq ее контракт, а внутренности stored-procedure могут быть изменены до тех stored-procedures пор, пока этот контракт все sql-to-linq еще выполняется. .

А также, если stored-procedure Linq используется для более stored-procedure сложных запросов, настройка linq-to-sql базы данных становится гораздо sql-to-linq более сложной задачей. Когда stored-procedure хранимая процедура выполняется language-integrated-query медленно, администратор базы stored-procedure данных может полностью сосредоточиться linq-query-syntax на изолированном коде и имеет stored-procedures множество вариантов, чтобы stored-procedure контракт все еще выполнялся, когда linq2sql он / она закончит.

Я видел linq2sql много-много случаев, когда sproc серьезные проблемы в приложении sproc решались путем изменения linq-to-sql схемы и кода в хранимых процедурах stored-procedure без каких-либо изменений sproc в развернутом скомпилированном sql-to-linq коде.

Возможно, подход hybird sproc был бы хорош с Linq? Linq, конечно, можно sql-to-linq использовать для вызова хранимых language-integrated-query процедур.

linq

linq-to-sql

stored-procedures

2022-11-15T07:50:18+00:00