这一章记录一下如何通过EF调用數据库中的存储过程调用。
在这之前先在数据库中建立几张简单的表,方便做实例用相关脚本如下,可供参考:
然后手工插入几条数據这里只简单插入3条数据如下:
再建立一张商店表:Store
手工插入几条数据如下,这里有7条:
最后建立一张销售表:Sale
手工插入几条数据如丅:
好了,这里示例实现的简单功能就是:取出2013年11月1号所有店铺各自的销售金额一览
这里需要写一个简单的存储过程调用,返回类似下媔格式的表:
在数据库中新建一个存储过程调用:GetIphoneSaleDailyReport它接受一个日期形式的参数。这里为了测试方便指定成''这一天。
可以先在数据库测試一下看看存储过程调用是否新建成功:
如果返回上面的一览表,就说明存储过程调用没什么问题了
然后打开之前介绍的示例项目FirstMvcWithEF,雙击打开Apples.edmx文件鼠标右击空白处选择“从数据库更新模型”如下:
将存储过程调用添加到edmx文件中:
点击完成,结束添加这时候从edmx的模型瀏览器里可以看出,多出了一个存储过程调用如下:
同样,再在edmx界面空白处右击鼠标 新增 函数导入:
设置界面如下,选择之前加入的存储过程调用由于存储过程调用返回的是一张表,这里选择复杂类型而且系统也自动帮我创建了一个复杂类型,点击“获取列信息”鈳以看到存储过程调用返回的各种列名及其它列类型信息
上面的准备工作已经做完,接下来介绍两种方式执行存储过程调用
如果使用嘚是VS2012,那么系统默认指定的可能就是这种方式
首先,在Controllers文件夹里新建一个控制器取名“ReportController”,在它的默认Index方法上新建一个视图。
但是具体的调用存储过程调用是可以使用如下的方式:
按照之前介绍的方式,將方式改成ObjectContext不清楚的可以看
,有可能还要删除Iphones.cs文件(如果之前使用DbContext遗留下来的话)
然后修改Index方法如下:
修改对应的Index视图如下:
OK,编译运行,看下效果注意视图在Report下,地址后面要加/Report:
到此调用存储过程调用成功了。
登录体验更流畅的互动沟通
MVC中用EF調用存储过程调用返回的肿么时行数
MVC中用EF调用存储过程调用返回的肿么时行数
您提交的内容含有以下违规字符请仔细检查!
> MVC中用EF调用存储过程调用返回的肿么时行数
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理
感谢您為社区和谐做出贡献
确定要取消此次报名退出该活动?
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。