我需要使用存储过程从数据库中获取数据,但是我还想使用IQueryable为结果添加一些过滤。我使用亚音速,现在看不到使用亚音速SP和IQueryable的方法。我唯一的想法是做一个视图,将执行所有必需的连接。然后进行呼叫,查看喜欢表亚音速:IQueryable用于亚音速存储过程
MyView.All()
亚音速所有返回的IQueryable和而不是添加在哪里我的SP可在代码中添加过滤器子句。不知道这是否是可行的解决方案?
我需要使用存储过程从数据库中获取数据,但是我还想使用IQueryable为结果添加一些过滤。我使用亚音速,现在看不到使用亚音速SP和IQueryable的方法。我唯一的想法是做一个视图,将执行所有必需的连接。然后进行呼叫,查看喜欢表亚音速:IQueryable用于亚音速存储过程
MyView.All()
亚音速所有返回的IQueryable和而不是添加在哪里我的SP可在代码中添加过滤器子句。不知道这是否是可行的解决方案?
好吧,我已完成this解决方案,以添加视图到我的SubSonic对象和IQueryable添加过滤。
IQueryable
允许将LINQ查询转换为SQL语句。将IQueryable
与存储过程结合使用与将SQL语句与存储过程混合使用相同,例如SELECT * FROM dbo.MyStoredProc WHERE x > 100
。由于这不起作用,所以将IQueryable
与存储过程混合是没用的,因为在返回之前无法过滤SP的结果。
你在找什么是客户端(.NET端)过滤。为此,您可以简单地使用IEnumerable
。当您的存储过程返回一组项目时,您仍然可以对该集合使用LINQ查询。
史蒂文,但你怎么看待和查询他们?在这种情况下不需要使用存储过程。加入进入视图和过滤使用IQueryable完成。 –
对数据库视图的LINQ查询很好。 – Steven