Lea*_*dro 2 c# async-await entity-framework-core
相关于:EFCore FromSql 异步。通过这个异步调用:
public async Task<myClass> MyMethod(long paramId)
{
return await _context.Set<myClass>()
.FromSqlRaw("CALL myStore({0});", paramId)
.FirstOrDefaultAsync<myClass>();
}
Run Code Online (Sandbox Code Playgroud)
我有这个问题:
FromSqlRaw或者FromSqlInterpolated使用不可组合的 SQL 并在其上组合查询来调用。考虑在or方法AsEnumerable之后调用以在客户端执行组合。FromSqlRawFromSqlInterpolated
所以看来FirstOrDefaultAsync不能与 一起使用FromSqlRaw。
我尝试过AsAsyncEnumerable:
IAsyncEnumerable<myClass> myResult = await _context.Set<myClass>()
.FromSqlRaw("CALL myStore({0});", paramId)
.AsAsyncEnumerable<myClass>();
Run Code Online (Sandbox Code Playgroud)
但它无法编译:
IAsyncEnumerable<myClass>不包含“GetAwaiter”的定义,并且找不到GetAwaiter接受第一个类型参数的IAsyncEnumerable<myClass>可访问扩展方法“ ”(您是否缺少 using 指令或程序集引用?)
我用这个解决方法解决了这个问题,因为ToListAsync它有效。
public async Task<myClass> MyMethod(long paramId)
{
List<myClass> myResult= await _context.Set<myClass>().FromSqlRaw("CALL myStore({0});", paramId).ToListAsync<myClass>();
return myResult.FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |