2010-07-19 2 views
1

В 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

Как реализовать этот запрос?

ответ

0

Нет смысла использовать ObjectSet, потому что вы не можете включать несколько наборов сущностей в один запрос из хранимой процедуры. Это не поддерживается в Entity Framework.

Вы можете попробовать проект EFExtensions, он имеет расширения для загрузки нескольких наборов сущностей из одного запроса.

+0

спасибо. Решение, предоставляемое EFExtensions, не то, что я хочу. Он дает вам несколько наборов результатов из SP, например, у вас есть несколько вариантов в вашем SP. Но то, что я хочу, это получить сущность с всеми ее данными поиска. Подобно Include для ObjectSet. Например, Employee может включать в себя 3 внешних ключа внешней таблицы: DepartmentID, RoleID, GenderID. I – KentZhou

+0

Вы не хотите, чтобы Entity Framework. Как я уже сказал, импорт функции хранимой процедуры будет возвращать только один тип сущности и не может включать в себя данные поиска. – Carvellis

+0

Спасибо за информацию. Узнайте одно решение: Загрузите поиск вручную в коде. – KentZhou

 Смежные вопросы

  • Нет связанных вопросов^_^