У цьому розділі містяться процедури виклику призначених для користувача функцій, визначених у базі даних, з запитів 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. Код для створення користувальницької функції на інших серверах баз даних може відрізнятися.