2009-06-23 18 views
5

kullanılırken biçimlendirme istisnasına neden oluyor Kimlik doğrulaması yapmak için NHibernate varlığını/eşlemeyi tanımlarken sütun olarak bir istisna alıyorum. Guid sütunu bir varchar (40) olarak üretilir, ancak içerik ikili olarak görünür.NHibernate'teki Guid as Kimliği sütununu kullanmama MySQL

Bunun için bir çözüm var mı? Şimdilik sadece düz ol 'kullanıyorum ama gelecekteki projeler için bilmek güzel olurdu! :)

+0

İstisna nedir? Sütunu varchar mı (40) oluşturdunuz ya da NHibernate şemayı oluşturdunuz mu? –

+0

NHibernate bunu oluşturdu. Şu anda istisna durumum yok, ancak formatla ilgili bir istisna. – l3dx

cevap

7

MySQL Connector belgelerine .NET bağlayıcı sürümü 5.2 dan onlar BİNARY (16) değil VARCHAR (40) olarak GUıD'ın tedavi belirtiyor. nhibernate şu anki MySQL lehçesi yana

şema oluşturmak nhibernate sonra bu değişikliği (aslında an issue hazırlanır) el BİNARY (16) bu alanları dönüştürmek gerekir yansıtacak şekilde güncellenir vermez.

+0

Son birkaç gündür aynı şeyi alıyorum. Bu gerçek bir hayat kurtarıcı. –

5

Buna Diğer bir güncelleme son konnektörleri Char (36)

Bu seçenek 6.1.1 NET Connector/tanıtıldı kullanmasıdır. Bir GUID tipinin arka uç gösterimi, BINARY (16) 'dan CHAR (36)' ya değiştirildi. Bu, geliştiricilerin bir GUID tablosunu doldurmak için UUID() işlevini kullanmasına izin vermek için yapıldı - UUID(), 36 karakterlik bir dizi oluşturur. Eski uygulamaların geliştiricileri, BINARY (16) veri türünde bir GUID kullanmak için bağlantı dizesine 'Old Guids = true' ekleyebilir.

İlgili konular