Entity Framework中对存储过程的返回值的处理
很早就开始注意到EF了,但一直没有机会用,换了工作后,第一个项目就使用EF6进行开发。 项目不是很大,EF完全可以胜任。 但是开发过程中,难免还是会遇到一些复杂的运算,需要频繁访问数据库。 此时,想到的比较简单的方式,就是使用存储过程,在存储过程中进行一定的运算,然后把运算的结果(一个查询结果)通过存储过程返回。
思路上完全没有问题,就直接建了一个存储过程,然后更新edmx。发现,更新后,EF中,生成的对这个存储过程的调用,返回结果却是“Int”??? 之前也有做过通过存储过程返回值,都是返回一个结果集,为什么这个会是Int呢?
通过在网上查资料,大家都说在编辑映射那里,点“获取列信息”(好像按钮是叫这个名字),但是我点了N多次,都是提示存储过程没有返回结果。
结果近一天的纠结,终于解决,问题是: 我在存储过程中使用了临时表,如#TempTable1这样的表, 把所有临时表改成表变量,就解决了。