EntityFramework存储过程的返回类型

本文介绍了如何在EntityFramework中处理存储过程返回的表类型数据。通过创建数据库中的表类型,定义存储过程并将其添加到EF模型中,然后创建对应的复杂类型来接收结果,最后展示调用存储过程并接收返回数据的示例代码。
摘要由CSDN通过智能技术生成

使用EntityFramework可以很方便的与数据库打交道,但是对于存储过程,返回类型很让人纠结,默认只返回受影响的行数,而我们在使用存储过程时往往是会返回一串的数据或者一个表。那有没有什么方法呢?

我们知道在SQL2008是支持表类型的,如果存储过程在执行完成后返回了一个表类型,在EF端再接收一下,那是不是就可以了呢?事实证明是可行的。我们需要分几个步骤。

1.在数据库中建立一个表类型,比如叫KEY_VALUE类型。

-- Create the data type
CREATE TYPE KEY_VALUE AS TABLE 
(
	[Key] NVARCHAR(50),
	[Value] NVARCHAR(max),
	[Remark] NVARCHAR (max)
)
GO
如下图


2.存储过程

假定我们需要传入一个字符串的过滤条件,那么我们的存储过程可以定义一个参数,之后再拼接成SQL,使用EXEC来执行,同时把结果存入到表类型变量中。

CREATE PROCEDURE [dbo].[QueryStudent]
@whereStr NVARCHAR(MAX) --根据需要定义的where条件
AS
BEGIN
	DECLARE @
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值