2011-07-16 18 views
14

Lütfen yukarıdaki durumla Dapper ve MySQL ile karşılaştırabilirsiniz. Veri tipinin BIT (1) veya BIT olduğu MySQL (5.1) 'daki tüm tablolarımda, Dapper sadece bu alanı ulong (UInt64) olarak döndürür. Ben MySql.Data.MySqlClient kullanıyorum ve ben dönüştürmek için çalışıyorum ne EF ile böyle bir sorunum yok.Dapper eşlemesi MySql BIT (1) veri türü, boole yerine ulong için

Yardımlarınız için teşekkür ederiz.

+0

Benim bağırsağım, bunun mysql sürücüsüyle ilgili bir sorun olduğunu söyler ... problemi düz ado.net ile tekrar gönderebilir misiniz ... örn. Sütunu seç ve değeri al ... türüne bak? –

+0

Basit bir çözüm, türüne bir gölge özelliği veya alan eklemektir –

+0

@Sam Saffron: Düz ADO.NET ile yeniden oluşturamadım ve ayrıca PetaPoco'yu denedim, aynı sorun yoktu. Daha fazla araştırmaya çalıştım, MySql aslında 0'ı false için, 1'i ise true olarak döndürüyor, neden üvey beni hala döver gibi gösteriyor? Gölge özelliği ile ne demek istediğinizi genişletebilir ve bunu nasıl çözebilirim? –

cevap

3

MySQL'de, Boolean tipi MySQL ile Tinyint(1) olarak eşlenir. Belki de Boolean'a (0 = false/1 = true) basmanız gerekecek, Convert.toBoolean(UInt64) size yardımcı olabilir (bkz. http://msdn.microsoft.com/en-us/library/33f2zy48.aspx).

Christian Droulers: SQLite davranışı benzerdir.

+1

+1 Convert.toBoolean (UInt64) benim için çalıştı. –

1

Neden dökümanı sql sorgunuzda yapmıyorsunuz?

cast(myField using TINYINT(1)) as myField 

burada tip abot tabii, ama bu benim db tip benim nesne en eşleşmediğinde yapmam yolu değil.