Создание объектов из хранимых процедур, которые имеют динамический sql

У меня есть хранимая процедура, которая использует пару таблиц и создает набор результатов с перекрестной вкладкой. Для создания набора результатов с перекрестной вкладкой я использую операторы CASE, которые динамически генерируются на основе записей в таблице.

Возможно ли сгенерировать сущность из этого SP с использованием инфраструктуры Entity ADO.NET? Потому что каждый раз, когда я пытаюсь Get Column Information для конкретного SP, он говорит, что The selected stored procedure returns no columns.

Любая помощь будет оценена.

1 ответ

Недавно член моей команды столкнулся с чем-то вроде этого, когда хранимая процедура создавала все виды динамического SQL и возвращала вычисленные столбцы, поэтому контекст данных не знал, что с этим делать. Я еще не пробовал это сам, но это было решение, о котором он утверждал:

Решение просто положить строку "УСТАНОВИТЬ FMTONLY OFF"; в proc. Это позволяет контексту данных на самом деле генерировать возвращаемый класс. Это работает в этом случае только потому, что proc ничего не делает, кроме запросов данных.

Полная информация здесь: http://tonesdotnetblog.wordpress.com/2010/06/02/solution-my-generated-linq-to-sql-stored-procedure-returns-an-int-when-it-should-return-a-table/

Вам нужно только "УСТАНОВИТЬ FMTONLY OFF" в proc достаточно долго, чтобы генерировать класс. Вы можете прокомментировать это.

licensed under cc by-sa 3.0 with attribution.