Saya mencurigai apa yang terjadi di sini hanyalah:database Anda memiliki kolom non-unicode, dan Anda mencoba untuk menyimpan data unicode. Karakter yang tidak terwakili memang akan menjadi yunani. Perbaikan yang benar adalah:pastikan kolom Anda unicode. Memainkan pengkodean kolom bisa bekerja, tapi sial itu banyak pekerjaan dibandingkan dengan hanya menggunakan unicode.
Dapper meneruskan hal-hal "sebagaimana adanya" ke ADO.NET; apa yang dilakukan penyedia terserah penyedia. Ada ada cara untuk memberitahunya untuk memilih antara ANSI dan Unicode saat mengirim data ke database, meskipun - melalui DbString
, yaitu
conn.Execute(sql, new {
id, name,
desc = new DbString { IsAnsi = true, Value = desc }
});
Ini juga memungkinkan Anda untuk mengontrol panjang dll. Namun, kami tidak mengontrol encoding di sini; pengkodean biasanya merupakan properti dari database itu sendiri, atau penyedia. Jika MySQL memiliki beberapa cara yang dipesan lebih dahulu untuk mengendalikannya di ADO.NET, saya "semua telinga", tetapi pertama-tama:Anda harus membuatnya bekerja di ADO.NET mentah.