2010-12-08 36 views
0

J'ai l'instruction SQL suivante:fonctions Fluent NHibernate et colonne (Oracle)

select s.status_code_id, -- number(2) 
     s.status.getStringVal(), --sys.xmltype 
     s.description.getStringVal() --sys.xmltype 
from schema2.table_status_code s 

La carte NHibernate Fluent pour la table tablestatuscode est

Table("table_status_code"); 
Schema("schema2"); 
Id(x => x.Id) 
    .Column("STATUS_CODE_ID"); 
Map(x => x.Status) 
    .Column("STATUS.getStringVal()"); 
Map(x => x.Description) 
    .Column("Description.getStringVal()"); 

Ce travail doens't. Comment puis-je utiliser la fonction getStringVal() avec Fluent nHibernate?

Cela ne fonctionne pas non plus:

Table("table_status_code"); 
Schema("schema2"); 
Id(x => x.Id) 
    .Column("STATUS_CODE_ID"); 
Map(x => x.Status) 
    .Formula("STATUS.getStringVal()"); 
Map(x => x.Description) 
    .Formula("Description.getStringVal()"); 
HasMany(x => x.Evoluties) 
    .Inverse(); 

parce que le SQL généré est pas correct pour Oracle. Vous devez avoir tablename.columnname.getStringVal() dans Oracle et non columnname.getStringVal()

grâce,

Filip

Répondre