請有人使用Dapper和MySQL來了解上述情況。在MySQL(5.1)的所有表中,數據類型是BIT(1)或BIT,Dapper只返回ulong(UInt64)這樣的字段。我正在使用MySql.Data.MySqlClient,並且我沒有EF這樣的問題,這正是我想要從中轉換而來的。Dapper將MySql BIT(1)數據類型映射爲ulong而不是布爾型
感謝您的任何幫助。
請有人使用Dapper和MySQL來了解上述情況。在MySQL(5.1)的所有表中,數據類型是BIT(1)或BIT,Dapper只返回ulong(UInt64)這樣的字段。我正在使用MySql.Data.MySqlClient,並且我沒有EF這樣的問題,這正是我想要從中轉換而來的。Dapper將MySql BIT(1)數據類型映射爲ulong而不是布爾型
感謝您的任何幫助。
在MySQL中,使用MySQL將Boolean
類型映射到Tinyint(1)
。也許你將不得不將它投到Boolean
(0 = false/1 = true),Convert.toBoolean(UInt64)
可能會幫助你(請參閱http://msdn.microsoft.com/en-us/library/33f2zy48.aspx)。
@Christian Droulers:SQLite的行爲是相似的。
+1 Convert.toBoolean(UInt64)爲我工作。 –
你爲什麼不在你的SQL查詢中進行轉換?
cast(myField using TINYINT(1)) as myField
不知道這裏ABOT的類型,但是這是當我的數據庫類型不匹配我的對象我的方式。
我的直覺告訴我,這是一個與MySQL驅動程序的問題...你可以用直ado.net repro問題...例如選擇列並獲得值...看看類型? –
簡單的解決方法是將陰影屬性或字段添加到您的類型 –
@Sam Saffron:我無法用直線ADO.NET重現它,並且我嘗試了PetaPoco,它沒有相同的問題。我試圖進一步調查,MySql實際上返回0爲假,1爲真,爲什麼顯示爲ulong仍然擊敗我。你可以擴展你的影子屬性的意思,我可以如何使用它來解決這個問題。 –