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

时间:2016-01-27 22:19:24

标签: 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'或者“假”'但后来它认为它是一个字符串。

我可以将复杂类型更改为bool,但是可以以不同的方式编写sql或者其他可以使#c;创建新的复杂类型"意识到它应该是一个布尔?

1 个答案:

答案 0 :(得分:2)

在演员表中包裹您的CASE语句,将其设置为BIT类型

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