2016-01-27 47 views
0

我有一個運行像這樣一個存儲過程:製作實體框架解釋存儲過程的結果集列BOOL,而不是中斷?

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

當我導入功能,並創建一個複雜的類型,它認爲IsNewColor是一個int。

我試圖返回「真」或「假」,但隨後認爲它是一個字符串。

我可以改變複雜類型爲bool,但有可能以不同的方式編寫SQL或別的東西,這將使「創建新的複雜類型」意識到它應該是一個布爾值?

+0

你嘗試使得它作爲一個BIT?你能顯示你的所有代碼嗎? – maSTAShuFu

回答

1

環繞你CASE聲明的轉換將其設置爲BIT

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

這工作,但它默認爲空。更改像這樣的字段屬性:http://stackoverflow.com/a/19156169/1315626 – scw

相關問題