IQueryable для дозвуковой хранимой процедуры - PullRequest
0 голосов
/ 14 июля 2011

Мне нужно использовать хранимую процедуру для получения данных из БД, но я также хотел бы использовать IQueryable для добавления некоторой фильтрации к результатам.Я использую дозвуковую систему и пока не вижу способа использовать дозвуковую версию SP и IQueryable.Единственная идея, которая у меня есть, - создать представление, которое будет выполнять все необходимые объединения.Затем выполните вызов, чтобы посмотреть как в таблице с дозвуковой:

MyView.All()

Subsonic All возвращает IQueryable, и вместо добавления, где в sp я могу добавить предложения фильтра в коде.Не уверены, является ли это жизнеспособным решением или нет?

Ответы [ 2 ]

1 голос
/ 14 июля 2011

IQueryable позволяет переводить запросы LINQ в операторы SQL. Использование IQueryable в сочетании с хранимыми процедурами аналогично смешиванию оператора SQL с хранимой процедурой, такой как SELECT * FROM dbo.MyStoredProc WHERE x > 100. Так как это не сработает, смешивание IQueryable с хранимой процедурой бесполезно, потому что нет способа отфильтровать результаты SP, прежде чем они вернутся.

Что вам нужно, так это фильтрация на стороне клиента (на стороне .NET). Для этого вы можете просто использовать IEnumerable. Когда ваша хранимая процедура возвращает коллекцию элементов, вы все равно можете использовать запросы LINQ к этой коллекции.

0 голосов
/ 14 июля 2011

Хорошо, я закончил с этим решением, чтобы добавить представления к моим объектам SubSonic и IQueryable для добавления фильтрации.

...