Вы можете использовать Table-Valued Function
в Entity Framework 5. Я думаю, что ссылка решит ваш вопрос:
Для использования функции табличного значения в Entity Framework вам необходимо выполнить следующие шаги:
1. Щелкните правой кнопкой мыши имя проекта в обозревателе решений, выберите пункт Добавить, а затем щелкните Новый
элемент.
2. Выберите «Данные» в меню слева, а затем выберите «Модель данных сущности ADO.NET» на панели «Шаблоны».
3. Введите TVFModel.edmx
в качестве имени файла и нажмите "Добавить".
4. В диалоговом окне "Выбор содержимого модели" выберите "Создать из базы данных" и нажмите "Далее".
5. Нажмите «Новое подключение». Введите (localdb)\v11.0
в текстовое поле «Имя сервера». Введите School для имени базы данных. Нажмите «ОК».
6. В диалоговом окне "Выбор объектов базы данных" в узле "Таблицы" выберите таблицы
Person, StudentGrade и Course.
7. Выберите функцию GetStudentGradesForCourse
, расположенную в узле "Хранимые процедуры и функции". Обратите внимание, что, начиная с Visual Studio 2012, Entity Designer
позволяет выполнять пакетный импорт хранимых процедур и функций.
8. Нажмите "Готово".
9. Отображается Entity Designer, предоставляющий рабочую область для редактирования вашей модели
. Все объекты, выбранные вами в диалоговом окне Choose Your Database Objects
, добавляются в модель.
10. По умолчанию результирующая форма каждой импортированной хранимой процедуры или функции
автоматически становится новым сложным типом в вашей модели объекта. Но мы хотим сопоставить результаты функции GetStudentGradesForCourse
с сущностью StudentGrade: щелкните правой кнопкой мыши область конструктора и выберите "Обозреватель моделей". В обозревателе моделей выберите "Импорт функций", а затем дважды щелкните функцию
GetStudentGradesForCourse
. диалоговое окно, выберите Entities и выберите StudentGrade
Вы можете использовать следующий код, чтобы использовать Table-Value Function
в приложении для получения данных:
using (var context = new SchoolEntities())
{
var CourseID = 4022;
var Grade = 3.5M;
// Return all the best students in the Microeconomics class.
var students = from s in context.GetStudentGradesForCourse(CourseID)
where s.Grade >= Grade
select new
{
s.Person,
s.Course.Title
};
foreach (var result in students)
{
Console.WriteLine(
"Couse: {0}, Student: {1} {2}",
result.Title,
result.Person.FirstName,
result.Person.LastName);
}
}
person
Vaibhav Parmar
schedule
14.11.2013