Вручную связать хранимую процедуру с LINQ - PullRequest
1 голос
/ 09 декабря 2010

У меня есть хранимая процедура, которая возвращает динамический набор результатов на основе временной таблицы. Мой проект использует LINQ для доступа к данным, но я не могу включить LINQ с этой хранимой процедурой, потому что она имеет динамическую «форму» (я не могу сказать заранее, какие столбцы вернутся или сколько их будет), поэтому LINQ не может генерировать во время разработки объект, который может содержать результаты.

Я пытаюсь интегрировать хранимую процедуру по старинке, используя SQLDataAdapter и тому подобное, но я надеялся, что я все еще смогу связать себя с LINQ, чтобы мне не нужно было управлять отдельным механизмом транзакций, поскольку это было бы катастрофа.

Возможно ли это? Спасибо.

Ответы [ 2 ]

2 голосов
/ 09 декабря 2010

Один из лучших приемов заключается в том, что хранимая процедура никогда не должна кодироваться так, чтобы она давала разные столбцы в наборе результатов на основе входных данных.

Похоже, ваш дизайн заставляет один сохраненный процесс попытаться выполнитьслишком много вещей.Я настоятельно рекомендую вам изменить это.

1 голос
/ 09 декабря 2010

Первый - вы не используете «LINQ» для доступа к данным. Я предполагаю, что вы используете Entity Framework для доступа к данным. Если да, это зависит от того, какую версию EF вы используете.

Новое в Entity Framework 4 формирует данные из сохраненного процесса. Пошаговые инструкции см. В этом сообщении в блоге: http://blogs.msdn.com/b/nihitk/archive/2010/04/23/ado-net-entity-designer-in-vs-2010-stored-procedure-return-type-shape-sensing.aspx

Если вы используете Entity Framework 1, который поставляется с .NET 3.5, то ни один EF не сможет определить форму сохраненных данных процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...