C# 让实体框架将存储过程结果集列解释为bool而不是int?
我有一个运行如下内容的存储过程:C# 让实体框架将存储过程结果集列解释为bool而不是int?,c#,sql-server,entity-framework,stored-procedures,C#,Sql Server,Entity Framework,Stored Procedures,我有一个运行如下内容的存储过程: SELECT ColorId, ColorName, CASE WHEN ColorId > 5 THEN 1 ELSE 0 END AS IsNewColor FROM Colors WHERE ColorId = 5 当我导入函数并创建复杂类型时,它认为IsNewColor是一个int 我尝试返回'True'或'False',但它认为这是一个字符串 我可以将复杂类型更改为boo
SELECT
ColorId,
ColorName,
CASE
WHEN ColorId > 5 THEN 1
ELSE 0 END AS IsNewColor
FROM
Colors
WHERE
ColorId = 5
当我导入函数并创建复杂类型时,它认为IsNewColor是一个int
我尝试返回'True'或'False',但它认为这是一个字符串
我可以将复杂类型更改为bool,但是是否有可能以不同的方式编写sql,或者执行其他操作,使“创建新的复杂类型”意识到它应该是bool?将您的
CASE
语句封装在cast中,以将其设置为位
类型
CAST(
CASE
WHEN ColorId > 5 THEN 1
ELSE 0 END
AS BIT) AS IsNewColor
你有没有试着做一点?你能显示你所有的代码吗?这是可行的,但默认为空。更改了字段属性,如下所示: