c# EF 执行存储过程 返回数据列表 怎么做

zhengyingcan 2017-06-25 07:24:13
我的上下文代码如下
public class JuCheapContext2 : DbContext
{
/// <summary>
/// 带参数构造函数 用于传入跨服务器的SQL服务器地址
/// </summary>
/// <param name="connectionString">数据库连接字符串名称</param>
public JuCheapContext2(string connectionString) : base(connectionString)
{
}
}

在数据 层 代码如下
public class CERPService : ICERPService
{
IList<CERPinexDto> ICERPService.Search(CERPFilters filters)
{
//获取ERP链接字符串
string Erpconnection = Maticsoft.DBUtility.PubConstant.ConnectionStringwg1;
//创造ERP的上下文
var db = new JuCheap.Data.JuCheapContext2(Erpconnection).Database;
string keywords = filters.keywords;
string execsql = "exec Inventory_exist @querydts='"+keywords+"'";
var query = db.SqlQuery<CERPinexDto>(execsql);
var datas = query.ToListAsync();
return datas;
}
}

我看别人的代码可以使用TOList,但是我这个EF没有这个提示,报错信息如下

错在那里呢,请大神帮我看一下,万分感谢
...全文
757 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengyingcan 2017-06-27
  • 打赏
  • 举报
回复
找到原因了,原来是引用命名空间的问题,没有 using Linq
zhengyingcan 2017-06-27
  • 打赏
  • 举报
回复
例子是 return db.SqlQuery<CERPinexDto>(execsql).ToList(); 但是 我这里 提示没有ToLIST 方法,只有 ToListAsync(); 方法 ,好奇怪
正怒月神 版主 2017-06-27
  • 打赏
  • 举报
回复
人家是这么形容 异步task的。说他是僵尸病毒会感染的。 要么一路走到黑,要么就别玩 楼上已经给出例子了,不赘述了
zhengyingcan 2017-06-27
  • 打赏
  • 举报
回复
我也不想用该死的异步, 但是不支持 ToList(); 只跳出来一个 ToListAsync(); 奇怪了
安心落意 2017-06-26
  • 打赏
  • 举报
回复
引用 2 楼 allenwdj 的回复:
要用异步,你就一路异步下去! public class CERPService : ICERPService { async Task<IList<CERPinexDto>> ICERPService.Search(CERPFilters filters) { //获取ERP链接字符串 string Erpconnection = Maticsoft.DBUtility.PubConstant.ConnectionStringwg1; //创造ERP的上下文 var db = new JuCheap.Data.JuCheapContext2(Erpconnection).Database; string keywords = filters.keywords; string execsql = "exec Inventory_exist @querydts='"+keywords+"'"; var query = db.SqlQuery<CERPinexDto>(execsql); var datas = query.ToListAsync(); return datas; } } 或者 ,不用异步 public class CERPService : ICERPService { IList<CERPinexDto> ICERPService.Search(CERPFilters filters) { //获取ERP链接字符串 string Erpconnection = Maticsoft.DBUtility.PubConstant.ConnectionStringwg1; //创造ERP的上下文 var db = new JuCheap.Data.JuCheapContext2(Erpconnection).Database; string keywords = filters.keywords; string execsql = "exec Inventory_exist @querydts='"+keywords+"'"; return db.SqlQuery<CERPinexDto>(execsql).ToList(); } }
上面异步的方式改成: public class CERPService : ICERPService { async Task<IList<CERPinexDto>> ICERPService.Search(CERPFilters filters) { //获取ERP链接字符串 string Erpconnection = Maticsoft.DBUtility.PubConstant.ConnectionStringwg1; //创造ERP的上下文 var db = new JuCheap.Data.JuCheapContext2(Erpconnection).Database; string keywords = filters.keywords; string execsql = "exec Inventory_exist @querydts='"+keywords+"'"; var query = db.SqlQuery<CERPinexDto>(execsql); var datas = await query.ToListAsync(); return datas; } }
安心落意 2017-06-26
  • 打赏
  • 举报
回复
要用异步,你就一路异步下去! public class CERPService : ICERPService { async Task<IList<CERPinexDto>> ICERPService.Search(CERPFilters filters) { //获取ERP链接字符串 string Erpconnection = Maticsoft.DBUtility.PubConstant.ConnectionStringwg1; //创造ERP的上下文 var db = new JuCheap.Data.JuCheapContext2(Erpconnection).Database; string keywords = filters.keywords; string execsql = "exec Inventory_exist @querydts='"+keywords+"'"; var query = db.SqlQuery<CERPinexDto>(execsql); var datas = query.ToListAsync(); return datas; } } 或者 ,不用异步 public class CERPService : ICERPService { IList<CERPinexDto> ICERPService.Search(CERPFilters filters) { //获取ERP链接字符串 string Erpconnection = Maticsoft.DBUtility.PubConstant.ConnectionStringwg1; //创造ERP的上下文 var db = new JuCheap.Data.JuCheapContext2(Erpconnection).Database; string keywords = filters.keywords; string execsql = "exec Inventory_exist @querydts='"+keywords+"'"; return db.SqlQuery<CERPinexDto>(execsql).ToList(); } }
全栈极简 2017-06-25
  • 打赏
  • 举报
回复
async IList<CERPinexDto> ... { ... return query.ToListAsync(); }

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧