Как я могу использовать хранимую процедуру для возврата одного объекта в Entity Framework 4? - PullRequest
5 голосов
/ 07 ноября 2010

Новое в Entity Framework. Использование EF4.Я нашел статьи и сумел использовать хранимые процедуры для возврата списка сущностей.

Но не вижу / не могу понять, как вы возвращаете одну сущность.

Учитывая, что у меня есть хранимая процедура "GetCustomerById ", который возвращает одного клиента. Как мне это отобразить?

Используя Браузер Модели, я щелкаю правой кнопкой мыши на «Импорт функций» и добавляю свою StoredProcedure, однако, что бы я ни выбрал, похоже, не возвращает «Единый объект»

Я упускаю очевидное?

Большое спасибо за любую ссылку или предложения

1 Ответ

3 голосов
/ 08 ноября 2010

Когда вы делаете Функция импорта , вам нужно выбрать сущность, которую ваш SP возвращает из выпадающего меню (т.е. Клиент ).Уловка EF НЕ возвращает напрямую Клиент объект согласно вашему выбору, но System.Data.ObjectResult который реализует IEnumerable .Чтобы быть более конкретным, вот сгенерированный код для вашей функции:

public ObjectResult<Customer> GetCustomerById(Nullable<global::System.Int32> Id)

Это потому, что EF не знает, возвращает ли ваш SP одну запись или их список, поэтому он оборачивает результат внутри ObjectResult .Вы можете перечислить это, чтобы получить свой объект Customer, как и любой другой объект IEnumerable.Например:

Customer myCustomer = context.GetCustomerById(1).First();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...