Як викликати призначені для користувача функції бази даних

У цьому розділі містяться процедури виклику призначених для користувача функцій, визначених у базі даних, з запитів LINQ to Entities.

Функції бази даних, що викликаються в запитах LINQ to Entities, виконуються в базі даних. При виконанні функцій в базі даних може збільшитися продуктивність додатків.







Процедура, наведена нижче, забезпечує високорівневу структуру виклику користувача функції бази даних. У наступному прикладі детально описані кроки даної процедури.

Виклик призначених для користувача функцій, визначених у базі даних.

Створіть для користувача функцію в базі даних.

Додаткові відомості про створення призначених для користувача функцій в SQL Server див. Розділ CREATE FUNCTION (Transact-SQL).

Оголосіть функцію на мові SSDL в EDMX-файлі. Ім'я функції має збігатися з ім'ям функції, оголошеної в базі даних.







Для отримання додаткової інформації див. Function Element (SSDL).

Додайте відповідний метод до класу в коді програми і застосуєте EdmFunctionAttribute до цього методу. Зверніть увагу, що параметри атрибута NamespaceName і FunctionName є ім'я простору імен концептуальної моделі і ім'я функції концептуальної моделі відповідно. При вирішенні імені функції для LINQ враховується регістр.

Викличте метод в запиті LINQ to Entities.

У наступному прикладі показуються процедури виклику користувача функції бази даних із запиту LINQ to Entities. У цьому прикладі використовується модель School. Додаткові відомості про модель School см. В розділах Creating the School Sample Database і Generating the School .edmx File.

Наступний код додає функцію AvgStudentGrade в зразок бази даних.

Кроки виклику користувача функції бази даних однакові, незалежно від сервера бази даних. Однак наступний код призначений спеціально для створення функції в базі даних SQL Server. Код для створення користувальницької функції на інших серверах баз даних може відрізнятися.