В EF 4 объект ObjectSet по умолчанию доступен для каждого объекта. Например, у меня есть таблица Employee, после модели Entity Model, EF создаст ObjectSet для Employee. Тогда при использовании службы WCF RIA, запрос по умолчанию будет как:ObjectSet и ResultSet на хранимой процедуре в службе EF и домена
общественного IQueryable GetEmployee() { возврата this.ObjectContext.Employees; }
С ObjectSet, я могу применить включить в результат, как:
return this.ObjectContext.Employees.Include("Department");
Затем я создаю хранимую процедуру сказать MySearchForEmployee и импортировать его в качестве функции. результат сопоставляется с сущностью Employee. При вызове функции результат будет ResultSet, а не ObjectSet.
Я хочу подобный способ, доступный для обслуживания домена с помощью вызова хранимой процедуры, как:
public IQueryable<Employeer> GetMySearch(string keyword)
{
return this.ObjectContext.MySearchForEmployee(keyword).Include("Department");
}
Но я не могу becuase выше событие коды не могу пройти проверку синтаксиса.
Я попытался следующий способ convet тип результата:
var results = this.ObjectContext.MySearchForEmployee(keyword);
var objsets = (ObjectSet<Employee>) results;
я получил ошибки как: Невозможно преобразовать тип «System.Data.Objects.ObjectResult» до «» System.Data.Objects.ObjectSet
Как реализовать этот запрос?
спасибо. Решение, предоставляемое EFExtensions, не то, что я хочу. Он дает вам несколько наборов результатов из SP, например, у вас есть несколько вариантов в вашем SP. Но то, что я хочу, это получить сущность с всеми ее данными поиска. Подобно Include для ObjectSet. Например, Employee может включать в себя 3 внешних ключа внешней таблицы: DepartmentID, RoleID, GenderID. I – KentZhou
Вы не хотите, чтобы Entity Framework. Как я уже сказал, импорт функции хранимой процедуры будет возвращать только один тип сущности и не может включать в себя данные поиска. – Carvellis
Спасибо за информацию. Узнайте одно решение: Загрузите поиск вручную в коде. – KentZhou