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");
    }
  }
È stato utile?

Soluzione

Capito:

Utilizzare come

mapping.Id(x => x.Id).Column("user_id");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top