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