Domanda

Qualcuno ha provato ActiveRecord Intro Sample con C # 3.5? In qualche modo ho la sensazione che il campione sia completamente sbagliato o semplicemente obsoleto. La configurazione XML è semplicemente sbagliata:

<add key="connection.connection_string" value="xxx" />

dovrebbe essere:

<add key="hibernate.connection.connection_string" value="xxx" />

(se ho capito bene la sintassi della configurazione negligente ..)

Mi chiedo cosa sto facendo di sbagliato. Ricevo un " Impossibile eseguire ExecuteQuery per l'utente " Eccezione quando si chiama Count () sul modello utente.

Non ho idea di cosa possa essere. La fonte del tutorial differisce fortemente dalla fonte sulla pagina (in particolare nella configurazione XML), ed è un esempio VS2003 con sintassi diversa sulla maggior parte delle cose (niente generici ecc.)

Qualche suggerimento? ActiveRecord sembra fantastico ..

È stato utile?

Soluzione

(Era troppo lungo per un post di commento)

[@Tigraine] Dai tuoi commenti sulla mia risposta precedente sembra che l'errore non risieda nella configurazione, ma in una delle tue entità. Rimozione di " ibernazione " corretta la configurazione in modo tale da individuare l'errore reale, che sembra essere l'entità "Pubblica" non è stato correttamente attribuito ad ActiveRecord per creare il suo mapping.

Se si verifica più in basso l'errore che fornisce, probabilmente ha alcuni dettagli su cosa riguarda "Pubblica" fallito.

Alcune cose comuni includono:

  • La classe non ha l'attributo [ActiveRecord] .
  • Non esiste alcuna proprietà con l'attributo [PrimaryKey] .
  • Non esiste una tabella corrispondente denominata " Post " (o " Posts " se PluralizeTableNames è " true ").
  • Non ci sono colonne corrispondenti per le proprietà attribuite.
  • Le tue proprietà e i metodi pubblici attribuiti non sono virtuali (questo mi uccide sempre).

Altri suggerimenti

La parte 'ibernazione' della chiave è stata rimossa in NHibernate versione 2.0. Questa versione è corretta per NHibernate 2.0 in poi:

<add key="connection.connection_string" value="xxx" />

Modifica: Vedo che l'avvio rapido non viene fornito con i file binari per Castle e NHibernate. Devi aver scaricato i binari da qualche parte; sarebbe utile se tu potessi fornire il numero di versione del tuo file NHibernate.dll.

In modo confuso, almeno ALCUNI dei quickstart sono stati aggiornati per essere aggiornati con NHibernate (NH) 2.0, ma l'ultima versione "corretta" di Castle è ancora la RC3 1.0 (quasi un anno ormai), che non include NH 2.0.

Puoi andare in due modi. Puoi continuare a utilizzare Castle RC3 e in questo caso dovrai effettivamente aggiungere il prefisso "ibernazione" alle voci di configurazione. Oppure puoi scaricare una build di Castle dal trunk, che dovrebbe essere in esecuzione su NH 2.0. Il problema con quest'ultimo approccio è che alcune delle ultime modifiche introdotte in NH 2.0 potrebbero non essere risolte al momento dell'avvio rapido.

Elimina " ibernazione. " parte per tutte le voci di configurazione. Il tuo primo esempio è quello corretto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top