2011-07-14 102 views
0

我需要使用存储过程从数据库中获取数据,但是我还想使用IQueryable为结果添加一些过滤。我使用亚音速,现在看不到使用亚音速SP和IQueryable的方法。我唯一的想法是做一个视图,将执行所有必需的连接。然后进行呼叫,查看喜欢表亚音速:IQueryable用于亚音速存储过程

MyView.All() 

亚音速所有返回的IQueryable和而不是添加在哪里我的SP可在代码中添加过滤器子句。不知道这是否是可行的解决方案?

回答

0

好吧,我已完成this解决方案,以添加视图到我的SubSonic对象和IQueryable添加过滤。

1

IQueryable允许将LINQ查询转换为SQL语句。将IQueryable与存储过程结合使用与将SQL语句与存储过程混合使用相同,例如SELECT * FROM dbo.MyStoredProc WHERE x > 100。由于这不起作用,所以将IQueryable与存储过程混合是没用的,因为在返回之前无法过滤SP的结果。

你在找什么是客户端(.NET端)过滤。为此,您可以简单地使用IEnumerable。当您的存储过程返回一组项目时,您仍然可以对该集合使用LINQ查询。

+0

史蒂文,但你怎么看待和查询他们?在这种情况下不需要使用存储过程。加入进入视图和过滤使用IQueryable完成。 –

+0

对数据库视图的LINQ查询很好。 – Steven