我需要使用存储过程从DB获取数据,但我还想使用IQueryable为结果添加一些过滤。我正在使用亚音速,现在看不到使用亚音速sp和IQueryable的方法。我唯一的想法是创建一个将执行所有必需连接的视图。然后执行调用以查看类似于亚音速的表:
MyView.All()
Subsonic All返回IQueryable,而不是在sp中添加where我可以在代码中添加filter子句。不确定这是否是可行的解决方案?
答案 0 :(得分:1)
IQueryable
允许将LINQ查询转换为SQL语句。将IQueryable
与存储过程结合使用与将SQL语句与存储过程(例如SELECT * FROM dbo.MyStoredProc WHERE x > 100
)混合使用相同。由于这不起作用,因此将IQueryable
与存储过程混合是没用的,因为在返回之前无法过滤SP的结果。
您正在寻找的是客户端(.NET端)过滤。为此,您只需使用IEnumerable
即可。当存储过程返回项集合时,您仍然可以对该集合使用LINQ查询。
答案 1 :(得分:0)
好的,我已经完成this解决方案,为我的SubSonic对象和IQueryable添加视图以添加过滤。