6

Bu (NHibernate.Criterion.IdentifierEqExpression) çevrimiçi olarak nasıl kullanıldığına dair iyi örnekler var mı? Ben bulamadım. Yapıcıya geçmen gereken şey hakkında biraz kafam karıştı.NHibernate - Tablo İsimlerinden Kaçan Kuvvetler

1 int32'de geçiyorum ve testimin temelde "nerede id = 1" türünde bir sorgu yapması gerektiğini ve bunun yerine "nerede id =?" ve konumsal parametreler hakkında bir şey. Eğer kurucunun içine geçmesi gereken şey değilse ... nedir? Ben SQL çıkışında baktığınızda

Gerçek Sayı
benim masa Kullanıcı adı verilir ve NHibernate [User] gibi kapatan değil gerçeği dışında düzgün çalışıyor gibi görünüyor. Bunu zorlamak için herhangi bir yol var mı?

+0

Kriter ifadenizin bir örneğini gönderir misiniz lütfen? –

+0

Ben IdentifierEqExpression arasındaki ilişkiyi görmüyorum ve tablo adından çıkıyorum ... lütfen biraz daha açıkla –

cevap

15

Tablo adını ` User ` olarak belirtin. Örneğin: eski veritabanları ile çalışma

Map(x => x.IsCurrent, "`Current`"); 

Ah sevinçleri:

(HBM) 
<class name="User" table="`User`"> 

(Fluent) 
public UserMap() 
{ 
    WithTable("`User`"); 
    ... 

(Mapping By Code) 
public UserMap() 
{ 
    Table("`User`"); 
    ... 

Benzer şekilde, sütunlu gibi bir şey yapmanız gerekecek.

+2

Backtick (') veritabanından bağımsız bir şekilde isimlerden kaçmak için kullanabilirsiniz ([] SQL Server'a özeldir). –

+1

İyi bir nokta, [] 'yi kullandığını gördüm ve düşünmedim bile. Yayımı en iyi uygulamaların çıkarları doğrultusunda güncelleyeceğim. –

+0

Serin. Geri-onay standardı hiçbir fikir yoktu. Hibernate'in sadece MySQL'den ödünç aldığı bir şey mi var? Çok kötü, lehçe ayarları bunu sizin için halletmiyor. – BuddyJoe