C# 如何使存储过程返回位值?
我有一个与此类似的存储过程:C# 如何使存储过程返回位值?,c#,sql-server,stored-procedures,C#,Sql Server,Stored Procedures,我有一个与此类似的存储过程: CREATE PROCEDURE [dbo].[sp_mark_question] AS BEGIN SELECT 1 AS Authenticated, 0 AS RC END 它是这样执行的: var rc = await db.Database.SqlQuery<AnswerToClient>(sql).FirstOrDefaultAsync(); public class AnswerToClient {
CREATE PROCEDURE [dbo].[sp_mark_question]
AS
BEGIN
SELECT 1 AS Authenticated,
0 AS RC
END
它是这样执行的:
var rc = await db.Database.SqlQuery<AnswerToClient>(sql).FirstOrDefaultAsync();
public class AnswerToClient
{
public bool Authenticated { get; set; }
public bool RC { get; set; }
}
var rc=await db.Database.SqlQuery(sql.FirstOrDefaultAsync();
公共类应答器客户
{
公共布尔认证{get;set;}
公共布尔RC{get;set;}
}
我得到一个错误:
从物化的“System.Int32”类型到“System.Boolean”类型的指定强制转换无效
我认为这可能是因为存储过程返回一个数字。如何使其返回一个可转换为布尔值的值?旁注:不应在存储过程中使用sp.
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用sp.
并使用其他东西作为前缀,或者根本不使用前缀!
SELECT CAST(1 AS BIT) AS Authenticated