Id colonna personalizzata in Fluent NH nome dell'entità
-
22-09-2019 - |
Domanda
Sto usando S # arp Architettura con Fluent NHibernate e Automapper su un DB legacy.
La colonna id di una delle tabelle è differente dalla convenzione Automapping e perciò cercato di sostituire senza successo. Io alla fine con questo errore
FluentNHibernate.Cfg.FluentConfigurationException : Un valido o incompleto configurazione è stata utilizzata durante la creazione un SessionFactory. Dai un'occhiata raccolta PotentialReasons, e InnerException per maggiori dettagli.
- Il database non è stato configurato attraverso il metodo del database.
FluentNHibernate.Cfg.FluentConfigurationException : Un valido o incompleto configurazione è stata utilizzata durante la creazione un SessionFactory. Dai un'occhiata raccolta PotentialReasons, e InnerException per maggiori dettagli.
Il database non è stato configurato attraverso il metodo del database.
---- NHibernate.MappingException: (XmlDocument) (3,6): la validazione XML di errore: L'elemento 'classe' in namespace 'urn: NHibernate-mapping-2.2' ha 'proprietà' non valida elemento figlio nel namespace 'Urn: NHibernate-mapping-2.2'. Lista di possibili elementi attesi: 'meta, subselect, cache, sincronizzazione, commento, tuplizer, id, composite-id' nel namespace 'Urn: NHibernate-mapping-2.2'. ---- System.Xml.Schema.XmlSchemaValidationException : L'elemento 'classe' nello spazio dei nomi 'Urn: NHibernate-mapping-2.2' ha elemento figlio non valido 'proprieta' in namespace 'Urn: NHibernate-mapping-2.2'. Lista di possibili elementi attesi: 'meta, subselect, cache, sincronizzazione, commento, tuplizer, id, composite-id' nel namespace 'Urn: NHibernate-mapping-2.2'.
Come faccio utente la convenzione automapper Id e impostare la mia colonna personalizzata come ID attraverso la funzionalità di override?
Nota: questo è solo per una sola entità. Io non voglio cambiare la convenzione mappatura generale ID
Ecco la mia funzione di override corrente
public class AuthMap : IAutoMappingOverride<Auth>
{
public void Override(AutoMapping<Auth> mapping)
{
mapping.Table("x_auth");
mapping.Map(x => x.Id, "user_id");
mapping.Map(x => x.SessId, "sess_id");
}
}
Soluzione
Capito:
Utilizzare come
mapping.Id(x => x.Id).Column("user_id");