are*_*-ru 9 .net linq-to-entities stored-procedures entity-framework iqueryable
我想IQueryable<>在执行存储过程时获得结果.
这是代码的和平工作正常:
IQueryable<SomeEntitiy> someEntities;
var globbalyFilteredSomeEntities =
from se in m_Entities.SomeEntitiy
where
se.GlobalFilter == 1234
select se;
Run Code Online (Sandbox Code Playgroud)
我可以使用它来应用全局过滤器,然后以这种方式使用结果
result = globbalyFilteredSomeEntities
.OrderByDescending(se => se.CreationDate)
.Skip(500)
.Take(10);
Run Code Online (Sandbox Code Playgroud)
我想做什么 - 在全局过滤器中使用一些存储过程.
我试过了:
添加存储过程m_Entities,但它会IEnumerable<>立即返回并执行sp:
var globbalyFilteredSomeEntities =
from se in m_Entities.SomeEntitiyStoredProcedure(1234);
Run Code Online (Sandbox Code Playgroud)
使用EFExtensions库实现查询,但确实如此IEnumerable<>.
如果我使用AsQueryable()和OrderBy(),Skip(),Take()
,之后ToList()执行该查询-
我得到异常DataReader是开放的,我需要先关闭它(不能粘贴错误-这是俄语).
var globbalyFilteredSomeEntities =
m_Entities.CreateStoreCommand("exec SomeEntitiyStoredProcedure(1234)")
.Materialize<SomeEntitiy>();
//.AsQueryable()
//.OrderByDescending(se => se.CreationDate)
//.Skip(500)
//.Take(10)
//.ToList();
Run Code Online (Sandbox Code Playgroud)
也只是跳过.AsQueryable()没有帮助 - 同样的例外.
当我ToList()执行查询执行时,
执行查询没有太昂贵Skip(),Take().
| 归档时间: |
|
| 查看次数: |
13927 次 |
| 最近记录: |