使实体框架将存储过程结果集列解释为 bool 而不是 int

本文关键字:bool int 解释 框架 实体 存储过程 结果 | 更新日期: 2023-09-27 18:32:15

我有一个运行如下内容的存储过程:

SELECT 
    ColorId, 
    ColorName,
    CASE
      WHEN ColorId > 5 THEN 1
      ELSE 0 END AS IsNewColor
FROM 
    Colors 
WHERE 
    ColorId = 5

当我导入函数并创建一个复杂类型时,它认为 IsNewColor 是一个整数。

我尝试返回"真"或"假",但后来它认为它是一个字符串。

我可以将复杂类型更改为布尔值,但是是否可以以不同的方式编写sql或其他使"创建新的复杂类型"意识到它应该是布尔值的东西?

使实体框架将存储过程结果集列解释为 bool 而不是 int

CASE语句包装在强制转换中以将其设置为BIT类型

CAST(
   CASE
      WHEN ColorId > 5 THEN 1
      ELSE 0 END
   AS BIT) AS IsNewColor