2009-10-09 6 views
14

Bir geri onay kullanarak ` ayrılmış sözcüklerin kullanılmasına izin vermesi gerektiğini okumuştum. SQL Server ve Fluent NHibernate kullanıyorum ve bir sütun adı "File" var. BenAyrılmış Word ile Fluent NHibernate Sütun Haritalama

"`File" 

ile eşlemek Eğer

[Fil] 

için doğru bir şekilde parantez ekleyerek, ama ucundan "e" düşüyor kullanarak çalışır. Ben

"`Filee" 

olarak eşlerseniz doğru

[File] 

kullanır.

Yanlış bir şey mi yapıyorum ya da bu bir NHibernate veya Fluent Nhibernate hatası mı?

+0

benzer görünümde olacaktır SchemaMetadataUpdater.QuoteTableAndColumns(cfg) dışarı fluentNHibernate ile herhangi bir şey yapıyor denediniz. Eğer hbm dosyasını aktarsanızNHibernate sizin için tablo = "' Dosya "yazacaktır. –

cevap

19

Bunu, her iki tarafta `koymak gerekir: @Astaar söylediği gibi

"`File`" 

, tam sözdizimi:

Map(x => x.File).Column("`File`"); 
+0

Oh, bu benim cevap için uzun zaman aldı. Teşekkür ederim! –

+0

Köşeli parantezler ayrıca çalışır: Harita (x => x.File) .Column ("[File]"); – Chronozoa

+0

@Chronozoa Bu yeni bir ekleme olup olmadığını biliyor musunuz? Yemin ederim ki 2010 yılında bu soruyu cevapladığımda denedim ve işe yaramadı. –

5

gayet açık olmak gerekirse, tam sözdizimi olacaktır burada ele olarak

Map(x => x.File).Column("`File`"); 
4

Bunun olmayan manuel konfigürasyon seçeneği vardır: NHibernate: forcing square brackets in schema export?

gibi alternatif: Fluent NHibernate and PostgreSQL, SchemaMetadataUpdater.QuoteTableAndColumns - System.NotSupportedException: Specified method is not supported

Ör FluentNhibernate içinde

var config = Fluently.Configure() 
    ... 
    ... 
    .ExposeConfiguration(cfg => SchemaMetadataUpdater.QuoteTableAndColumns); 
+0

Bu çözümün daha iyi olduğunu düşünüyorum çünkü her bir harita üzerinde özel olarak isimlendirilen tüm yeni sütun adlarını eklemek yerine bir kerelik ayardır. –

+0

Bu yöntem kullanımdan kaldırıldı ve benim için çalışmıyor. – sky91