|
|
|
Entity Framework - output параметр в хранимке
|
|||
|---|---|---|---|
|
#18+
Добрый день! Нет сил уже искать причину засора, кто сталкивался помогите! Упростил пример до минимума - все равно не работает. :( Использую VS 2010 Beta 2, EF 4.0. Есть хранимка: ALTER PROCEDURE [dbo].[ds_GetInfo] @Out INT OUTPUT AS BEGIN SET @Out = 1 END Добавил в модель, пытаюсь использовать: using (var myBase = new Entities()) { var _out = new ObjectParameter("Out", typeof(global::System.Int32)); var _obj = myBase.ds_GetInfo(_out); var _value = (int)_out.Value; } Так вот при всех моих попытках _out.Value равняется null. Есть какие то предположения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2009, 08:41 |
|
||
|
Entity Framework - output параметр в хранимке
|
|||
|---|---|---|---|
|
#18+
Я Вам советую забить на этот "баг" :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. P.S. На лицо: серверная независмость (DbConnection, DbCommand, DbParameter). Работает - и да ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2009, 15:07 |
|
||
|
Entity Framework - output параметр в хранимке
|
|||
|---|---|---|---|
|
#18+
МСУ, спасибо за ответ. Как раз уже хотел переделывать хранимку в сторону, которую предложили вы, как совершенно неожиданно нашел ответ на свой вопрос. Оказывается бага нет, есть особенность использования. :) Может кому то пригодится: The ObjectResult is lazy: it reads new rows from the database as the caller reads new elements. This avoids the need to buffer the entire result before returning it to the caller. Until the reader has been consumed, there is no guarantee that the value for the output parameter will be available (e.g. when calling a SQL Server stored procedure), so the Entity Framework waits until the elements have been read before passing through the parameter value. ObjectParameter outputParameter = new ObjectParameter(typeof(int)); foreach (OrderDetail detail in context.GetPagedOrderDetails(0, 10, outputParameter)) { // process detail (underlying database reader is still active) } // reader is finished and the parameter value is now available int output = (int)outputParameter.Value; МСУ, еще раз спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2009, 15:31 |
|
||
|
Entity Framework - output параметр в хранимке
|
|||
|---|---|---|---|
|
#18+
Я вот только одного не понимаю. Неужели в 2010 студии + FW 4.0 сделали обращение к процедуре прямо из контекста? Новой студии у меня нет, юзаю 2008 + FW 3.5. Так вот процедуры в EF можно использовать только под маппинг Insert, Update и Delete в сущности. Сам дизайнер edmx мне сгенерил процедуру (это видно в коде модели) Код: plaintext 1. 2. Но обратиться к ней я не могу: Код: plaintext 1. 2. 3. Новая фича? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2009, 16:26 |
|
||
|
Entity Framework - output параметр в хранимке
|
|||
|---|---|---|---|
|
#18+
МСУ, Угу, дождались. :) Вот тут посмотри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2009, 17:04 |
|
||
|
Entity Framework - output параметр в хранимке
|
|||
|---|---|---|---|
|
#18+
bozhdayМСУ, Угу, дождались. :) Вот тут посмотри. Подправлю битую ссылочку: тынц Ух-ты, расширили Add Function Import, круто. Спасибо за информацию! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2009, 17:22 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36337660&tid=1351583]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 345ms |

| 0 / 0 |
