回答
你不需要轉換,因爲bit
已經是整數數據類型:
1
,
0
,或
NULL
值
的整數數據類型。
您可以在不帶轉換的整數表達式中使用bit
s。這裏是一個簡短的演示:
create table demo (b bit, v int);
insert into demo (b, v) values (1,5), (0,4), (1, -2), (0, -5);
SELECT b, v, b+v AS b_plus_v FROM demo
運行此produces以下的輸出:
B V B_PLUS_V
- - --------
1 5 6
0 4 4
1 -2 -1
0 -5 -5
編輯:(在此基礎上評論: 「我使用的代碼第一EF」)
實體框架要求bit
列映射到bool
字段。解決這個需求的一種方法是爲您的實體類引入一個計算屬性,以隱藏底層列的「布爾性」,如下所示:
partial class MyEntity {
// This code assumes that a bool property MyBoolProperty exists,
// and that it is mapped to the table using EF
public int MyIntProperty {
get {
return MyBoolProperty ? 1 : 0;
}
set {
MyBoolProperty = value != 0;
}
}
}
在實體框架中,列必須是Bool,如果我將其更改爲int類型,則投射失敗(我使用Code first EF)。 – loyalflow
@ user1361315我沒有意識到你正在談論EF - 你應該添加一個註釋或標籤來更具體地說明這一點。 – dasblinkenlight
Sql Server在添加之前轉換'BIT',不是?數據類型的位和位在添加操作符中不兼容。 – DMason
- 1. 如何將int轉換爲位?
- 2. 如何將int轉換爲位掩碼?
- 3. 如何將位圖轉換爲int []?
- 4. 如何將varchar列值轉換爲int?
- 5. 如何將列表值轉換爲int
- 6. 如何將Nvarchar列轉換爲INT
- 7. 如何將int轉換爲列表?
- 8. 如何將csv列表轉換爲int?
- 9. 將列var上的varchar轉換爲int列轉換爲int
- 10. 將int位轉換爲浮點位
- 11. 將8位int轉換爲32位
- 12. 如何將int數組轉換爲int?
- 13. 如何將int []類型轉換爲int?[]
- 14. 如何將signed int轉換爲15位的位域?
- 15. 將[Int?]轉換爲[Int]
- 16. 將int轉換爲int []
- 17. 將IO Int轉換爲Int
- 18. 如何將System.Linq.Enumerable.WhereListIterator <int>轉換爲列表<int>?
- 19. 如何將int轉換爲列表<int>
- 20. 使用Marshal.Copy()將位圖轉換爲int []
- 21. 如何將有符號的32位int轉換爲無符號的32位int?
- 22. 轉換位字段爲int
- 23. 轉換爲64位的int
- 24. 如何將int列表轉換爲可爲空的列表<int>?
- 25. 如何將int轉換爲枚舉值?
- 26. 如何將Scope_Identity()轉換爲Int?
- 27. 如何將元組轉換爲int?
- 28. 如何將pfCashedNumer轉換爲int?
- 29. 如何將list.files()輸出轉換爲int?
- 30. 如何將Integer []轉換爲int []?
您有什麼需要嘗試的? –
位列的值爲0或1.所以我不知道爲什麼要更改列類型並仍然保留值。你試過了嗎? –
這是一個重複的http://stackoverflow.com/questions/11668431/convert-bit-column-to-integer? – Tim