关于EF 调用存储过程的问题

zxl19890412qq 2017-12-04 05:23:09
EF 映射 存储过程之后为什么 会返回 int 而不返回结果集?
为什么 EF 调用存储过程 会返回 int? 我 存储过程 中用的临时表 最后输出的 是select 字段 from 临时表
...全文
397 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2017-12-07
  • 打赏
  • 举报
回复
引用 15 楼 zxl19890412qq 的回复:
有大神来帮忙看看嘛
说了半天也没见你的代码
zxl19890412qq 2017-12-06
  • 打赏
  • 举报
回复
有大神来帮忙看看嘛
zxl19890412qq 2017-12-06
  • 打赏
  • 举报
回复
引用 13 楼 webdiyer 的回复:
[quote=引用 7 楼 zxl19890412qq 的回复:] [quote=引用 4 楼 webdiyer 的回复:] 你的代码呢?
EF 不支持 临时表吧? 我存储过程中用到了临时表该怎么调用?简单一点的[/quote] 临时表和EF没有任何关系,临时表是存储过程中运行的,又不是直接和EF打交道[/quote] 那为什么 EF 映射完会返回int啊??
webdiyer 2017-12-06
  • 打赏
  • 举报
回复
引用 7 楼 zxl19890412qq 的回复:
[quote=引用 4 楼 webdiyer 的回复:] 你的代码呢?
EF 不支持 临时表吧? 我存储过程中用到了临时表该怎么调用?简单一点的[/quote] 临时表和EF没有任何关系,临时表是存储过程中运行的,又不是直接和EF打交道
webdiyer 2017-12-05
  • 打赏
  • 举报
回复
你的代码呢?
zxl19890412qq 2017-12-05
  • 打赏
  • 举报
回复
引用 11 楼 zxl19890412qq 的回复:
[quote=引用 10 楼 duanzi_peng 的回复:]
[quote=引用 6 楼 zxl19890412qq 的回复:]
[quote=引用 2 楼 duanzi_peng 的回复:]
添加函数导入时要选择返回内容的类型是标量,是实体,还是复杂类型的。

貌似 EF 不支持 存储过程中 有表变量的调用啊![/quote]
如果多表查询,储存过程返回的是个复杂类型,看看这篇文章都明白:http://www.entityframeworktutorial.net/stored-procedure-in-entity-framework.aspx[/quote]

我在存储过程中有了临时表,随后查询出来临时表,我映射模版的时候 返回int 而且 导入复杂类型也没有生成,是我操作错了?[/quote]
zxl19890412qq 2017-12-05
  • 打赏
  • 举报
回复
引用 10 楼 duanzi_peng 的回复:
[quote=引用 6 楼 zxl19890412qq 的回复:] [quote=引用 2 楼 duanzi_peng 的回复:] 添加函数导入时要选择返回内容的类型是标量,是实体,还是复杂类型的。
貌似 EF 不支持 存储过程中 有表变量的调用啊![/quote] 如果多表查询,储存过程返回的是个复杂类型,看看这篇文章都明白:http://www.entityframeworktutorial.net/stored-procedure-in-entity-framework.aspx[/quote] 我在存储过程中有了临时表,随后查询出来临时表,我映射模版的时候 返回int 而且 导入复杂类型也没有生成,是我操作错了?
exception92 2017-12-05
  • 打赏
  • 举报
回复
引用 6 楼 zxl19890412qq 的回复:
[quote=引用 2 楼 duanzi_peng 的回复:]
添加函数导入时要选择返回内容的类型是标量,是实体,还是复杂类型的。

貌似 EF 不支持 存储过程中 有表变量的调用啊![/quote]
如果多表查询,储存过程返回的是个复杂类型,看看这篇文章都明白:http://www.entityframeworktutorial.net/stored-procedure-in-entity-framework.aspx
zxl19890412qq 2017-12-05
  • 打赏
  • 举报
回复
引用 6 楼 zxl19890412qq 的回复:
[quote=引用 2 楼 duanzi_peng 的回复:] 添加函数导入时要选择返回内容的类型是标量,是实体,还是复杂类型的。
貌似 EF 不支持 存储过程中 有表变量的调用啊![/quote] 说错了 是不支持 存储过程中有 临时表的调用吧?
引用 8 楼 hanjun0612 的回复:
string sql = "exec sp_ReportSiteLast @ProjectId";
            SqlParameter[] parameters = new SqlParameter[4];

           
                parameters[0] = new SqlParameter("@ProjectId", int.Parse(entity.ProjectIds));
            
            var q = db.Database.SqlQuery<ReportSource.sp_ReportSite>(sql, parameters).ToList();


            return q;
[quote=引用 5 楼 zxl19890412qq 的回复:] [quote=引用 1 楼 hanjun0612 的回复:] var q = dbcontext.database.SqlQuery<对象>("exec 存储过程") 我都是上面这么调用的。你试试看
这样传参数的时候 是不是 要很古老的那种写法啊? 不支持 “exec 存储过程 @1 @2” ,1,2 这种写法吧? [/quote][/quote] 这种写法感觉有点麻烦,有没有简单点的就跟我上边说的那样!EF 是不是不支持 存储过程中有临时表啊
正怒月神 版主 2017-12-05
  • 打赏
  • 举报
回复
string sql = "exec sp_ReportSiteLast @ProjectId";
            SqlParameter[] parameters = new SqlParameter[4];

           
                parameters[0] = new SqlParameter("@ProjectId", int.Parse(entity.ProjectIds));
            
            var q = db.Database.SqlQuery<ReportSource.sp_ReportSite>(sql, parameters).ToList();


            return q;
引用 5 楼 zxl19890412qq 的回复:
[quote=引用 1 楼 hanjun0612 的回复:] var q = dbcontext.database.SqlQuery<对象>("exec 存储过程") 我都是上面这么调用的。你试试看
这样传参数的时候 是不是 要很古老的那种写法啊? 不支持 “exec 存储过程 @1 @2” ,1,2 这种写法吧? [/quote]
zxl19890412qq 2017-12-05
  • 打赏
  • 举报
回复
引用 4 楼 webdiyer 的回复:
你的代码呢?
EF 不支持 临时表吧? 我存储过程中用到了临时表该怎么调用?简单一点的
zxl19890412qq 2017-12-05
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
添加函数导入时要选择返回内容的类型是标量,是实体,还是复杂类型的。
貌似 EF 不支持 存储过程中 有表变量的调用啊!
zxl19890412qq 2017-12-05
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
var q = dbcontext.database.SqlQuery<对象>("exec 存储过程") 我都是上面这么调用的。你试试看
这样传参数的时候 是不是 要很古老的那种写法啊? 不支持 “exec 存储过程 @1 @2” ,1,2 这种写法吧?
exception92 2017-12-04
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
添加函数导入时要选择返回内容的类型是标量,是实体,还是复杂类型的。
即使是select 出来,在ef中也要有对应的model 能够进行映射数据库查询出来的字段。
exception92 2017-12-04
  • 打赏
  • 举报
回复
添加函数导入时要选择返回内容的类型是标量,是实体,还是复杂类型的。
正怒月神 版主 2017-12-04
  • 打赏
  • 举报
回复
var q = dbcontext.database.SqlQuery<对象>("exec 存储过程") 我都是上面这么调用的。你试试看

62,040

社区成员

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

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

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

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