![](/img/trans.png)
[英]Problems calling a stored procedure using Entity Framework: expects parameter not supplied
[英]Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar while executing a stored procedure with Entity Framework
我收到了错误
过程需要'ntext / nchar / nvarchar'类型的参数'@statement'
使用Entity Framework执行存储过程时。
这是我的存储过程:
CREATE PROCEDURE [dbo].[usp_RolesList]
(@WhereCond VARCHAR(50))
AS
BEGIN
SET NoCount ON
DECLARE @SQLQuery AS VARCHAR(MAX)
SET @SQLQuery = 'Select * From dbo.AspNetRoles ' + @WhereCond
EXECUTE sp_Executesql @SQLQuery
END
这是我用来执行结果的c#代码
var idParam = new SqlParameter
{
ParameterName = "WhereCond",
Value = "where Id > 0"
};
var courseList = ctx.Database.SqlQuery<UserRoles>("exec usp_RolesList @WhereCond ", idParam).ToList<UserRoles>();
使用此默认脚本创建AspNetRoles表..如果你没有改变它..
CREATE TABLE [dbo].[AspNetRoles](
[Id] [nvarchar](128) NOT NULL,
[Name] [nvarchar](256) NOT NULL,
CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
试试这个......
var idParam = new SqlParameter
{
ParameterName = "WhereCond",
Value = "where not Id is null" //it will be work but it makes no sense because it is primarkey field
};
var courseList = ctx.Database.SqlQuery<UserRoles>("exec usp_RolesList @WhereCond ", idParam).ToList<UserRoles>();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.