C# ';找不到CLR类型';字符[]'';在Asp Core 2.2中使用SP时
我需要使用Sql中的C# ';找不到CLR类型';字符[]'';在Asp Core 2.2中使用SP时,c#,asp.net,asp.net-core,asp.net-web-api,C#,Asp.net,Asp.net Core,Asp.net Web Api,我需要使用Sql中的SP: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[usp_GetUsrsofRole] (@RoleId int) AS ;WITH CTE_UsersInRole AS ( SELECT U.Id AS [UserId], U.Name AS [UserName] , U.Family AS [UserFamily] , R.Id AS[RoleI
SP
:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_GetUsrsofRole] (@RoleId int)
AS
;WITH CTE_UsersInRole AS
(
SELECT
U.Id AS [UserId], U.Name AS [UserName] , U.Family AS [UserFamily] , R.Id AS[RoleID],R.Name AS [RoleName]
FROM AspNetUserRoles AU
INNER JOIN AspNetRoles R ON R.Id=AU.RoleId
INNER JOIN AspNetUsers U ON U.ID=AU.UserId
)
SELECT
C.RoleID,C.RoleName,C.UserFamily,C.UserId,C.UserName
FROM CTE_UsersInRole C
WHERE C.RoleID=@RoleId
GO
我通过以下方式在asp core中调用此sp:
public IEnumerable<dynamic> GetUserOfRole(int id)
{
return TableAsNoTracking.FromSql("EXEC usp_GetUsrsofRole @RoleId", parameters: new[] { id }).ToList();
}
public IEnumerable GetUserOfRole(int-id)
{
返回TableAsNoTracking.FromSql(“EXEC usp_GetUsrsofRole@RoleId”,参数:new[]{id}).ToList();
}
现在,当我需要使用此sp
时,它会显示以下错误:
'找不到CLR类型'char[]到关系类型的映射。'
有什么问题吗??如何解决此问题?请不要像这样尝试
new[]{}
:返回TableAsNoTracking.FromSql(“EXEC usp_GetUsrsofRole@RoleId”,id).ToList()
@MohsinMehmood它向我显示了这个错误:必须声明标量变量“@RoleId”
返回TableAsNoTracking.FromSql(“EXEC usp_GetUsrsofRole@p0”,id).ToList()
@MohsinMehmood我在表IsDeleted
中有一个属性,现在它向我显示此所需列“IsDelete”在“FromSql”操作的结果中不存在。
无法根据现有代码重现问题。你能提供相关的模型定义吗?如果您使用的是Entity Framework Core 2.x,请查看查询类型()。不要像这样尝试new[]{}
:return TableAsNoTracking.FromSql(“EXEC usp_GetUsrsofRole@RoleId”,id).ToList()
@MohsinMehmood它向我显示了这个错误:必须声明标量变量“@RoleId”
返回TableAsNoTracking.FromSql(“EXEC usp_GetUsrsofRole@p0”,id).ToList()
@MohsinMehmood我在表IsDeleted
中有一个属性,现在它向我显示此所需列“IsDelete”在“FromSql”操作的结果中不存在。
无法根据现有代码重现问题。你能提供相关的模型定义吗?如果您使用的是EntityFrameworkCore2.x,请查看查询类型()。