Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 让实体框架将存储过程结果集列解释为bool而不是int?_C#_Sql Server_Entity Framework_Stored Procedures - Fatal编程技术网

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

你有没有试着做一点?你能显示你所有的代码吗?这是可行的,但默认为空。更改了字段属性,如下所示: