2009-07-08 6 views

Répondre

7

Je ne suis pas un dba donc je ne peux pas vous donner une bonne définition de schéma ... (pour moi c'est juste 'base de données' dans SQL Server).

Dans NHibernate, vous pouvez spécifier le schéma de deux endroits: dans les fichiers de mappage, dans la configuration.

Le fichier de mappage vous permet de spécifier un schéma par classe. C'est bien quand vous avez des classes provenant de différents schémas dans le même serveur.

La configuration de SessionFactory vous permet de spécifier un schéma par défaut (option default_schema) qui doit être appliqué à tous les mappages de classe qui ne définissent pas explicitement leur schéma. Donc c'est un attrape tout. De la lecture de votre lien, il semble que ce soit bénéfique en termes de performances car lorsque vous interrogez la table "Bar" sans spécifier le schéma (disons que la base de données est "Foo" alors le schéma "Foo.dbo" dans SQL Server) t en cache. Cela est probablement dû au fait que SQL Server doit essayer de résoudre quel schéma utiliser par votre chaîne de connexion (Initial Catalog, Database, etc) au lieu de l'avoir explicite dans la requête ("Bar" implicite - pas mis en cache, "Foo.dbo .Bar "explicite - mis en cache".

Encore une fois, je ne suis pas un dba si ces définitions sucent :)

modifier:

Voici un lien vers la substance de configuration (pour NH 1.2 ... qui est vieux ... mais l'option default_schema est présente):

https://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/session-configuration.html