2010-08-11 11 views
2

Je configure Castle Active Record pour accéder à une base de données existante sur un serveur Microsoft SQL Server. La table en question a une colonne nommée fonction. Quand j'attampt pour charger un dossier, il me donne cette erreur:accéder à une table dont le nom de colonne est un mot clé réservé

syntaxe incorrecte près de la « fonction » mot-clé

Cette erreur vient du fait que la NHibernate de requête SQL génère des tentatives pour accéder à la colonne nommée fonction, ce qui arrive à être un mot-clé restreint. Le correctif consiste à envelopper le nom de la colonne entre accolades ([fonction]) dans l'instruction SQL. Est-il possible de dire à nhibernate de le faire dans son SQL autogénéré?

+0

duplication possible de [Conflit de noms de tables Castle ActiveRecord] (http://stackoverflow.com/questions/2752072/castle-activerecord-table-name-conflict) –

Répondre

1

Cela vous aidera à:

http://quomon.com/question-How-do-I-handle-database-reserved-words-in-NHibernate-1148.aspx

Exemple où la table est un mot-clé réservé:

<class name="User" table="[user]" lazy="false"> 

Je pense que la même pour les noms de colonnes. Enveloppez-les dans des accolades carrées.

+1

la manière portable d'exprimer cela utilise des guillemets, voir la question en double référence. –

+0

Pas toujours. Comme vous le voyez dans cette question, l'utilisateur a posté une réponse qui n'utilise pas de backticks probablement parce que l'utilisation de backticks ne fonctionnerait pas pour lui. –

+0

jetez un oeil à l'heure des réponses ... –