在C#中使用EntityFramework(EF)生成实体进行存储过程的调用
来源:互联网 发布:尔雅网络通识课程 编辑:程序博客网 时间:2024/05/20 15:39
今天琢磨了一天弄这个问题,真是很郁闷。
我需要在EF中使用定义对象模型的方式调用一个存储过程,这个存储过程返回的是一组包含两列的值。(ProjectName,Count)
下面是存储过程:
CREATE procedure [dbo].[Pro_Project_By_UserID]
@userID nvarchar(36)
AS
SELECT Project AS ProjectTypeName,
Count(BA.ProjectId) AS ProjectCount
FROM dbo.B_AllProjectInfo BA
WHERE IsComplex = 1
AND UserId = @userID
GROUP BY Project
在DB中定义了这个SP后,在C#中的*.edmx中,选择‘从数据库更新模型’,更新方式和更新表一样。这样在C#中就会生成
Pro_Project_By_UserID_Result
的类,还有一个函数
public virtual ObjectResult<Pro_Project_By_UserID_Result>Pro_Project_By_UserID(string userID)
{
var userIDParameter = userID != null ?
new ObjectParameter("userID", userID) :
new ObjectParameter("userID", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Pro_Project_By_UserID_Result>("Pro_Project_By_UserID_UserID", userIDParameter);
}
在实际执行时,代码如下:
var curProjects = dataContext.Pro_Project_By_UserID(myUserID).ToList();
请注意,这里一定要加上ToList(),否则返回的值不能用。这个地方折磨我半天。因为发现明明运行成功了,但是如果不加ToList(),获取的值没地方拿。
- 在C#中使用EntityFramework(EF)生成实体进行存储过程的调用
- 在C#中使用EntityFramework(EF)生成实体进行存储过程的调用
- 在C#中使用EF(EntityFramework)插入数据到DB的异常
- EntityFramework 4.0 中添加对存储过程的调用
- 在ASP.NET中使用SQL Server作为数据库,DB First方式使用EF(EntityFramework)进行开发和部署时的connectionString
- 使用EF来调用存储过程
- 带输出参数的存储过程的使用及在C#中调用问题
- 带输出参数的存储过程的使用及在C#中调用问题
- 带输出参数的存储过程的使用及在C#中调用问题
- 怎样在C#中调用存储过程?
- 在C#中调用存储过程
- 如何在C#中调用存储过程
- MVC之EF(调用存储过程的分页)
- c#生成实体类和存储过程
- 在C#中调用存储过程(WinForm)
- EF(EntityFramework) 的 CodeFirst 使用指南二(基本使用)
- sql生成(c#调用存储过程返回数据表)代码的存储过程
- EF中关于存储过程的操作
- 一篇文章让你学会json和Gson---json全面详细解析
- asp.net webapi的跨域问题,以及同源策略
- sping+spingmvc+maven图片上传服务器
- Lavarel bind参数丢失
- 同步图运算框架GraphLite实例之PageRank算法
- 在C#中使用EntityFramework(EF)生成实体进行存储过程的调用
- LEETCODE02
- Google VR 使用详解
- 网络通信socket连接数上限
- jquery获取select中的option的text值
- 设计模式-单例模式
- 第十一单元总结
- GSON解析JSON保存到数据库
- poj 3304 Segments (跟所有线段相交的直线)