2012-05-06 5 views
-2

j'ai un problème avec la clé primaire composite: j'ai une table nommée "simulator", la clé primaire composite sont Nombre_simulateur et date classe simulateur.hbm.xml:NHibernate composite clé primaire

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true"> 
    <class name="base_donnee.simulateur, base_donnee" table="simulateur"> 
<composite-id > 
<key-property name="Nombre_simulateur"> 
     <column name="[Nombre_simulateur]" sql-type="int" /> 
     </key-property> 
     <key-property name="Date"> 
     <column name="[Date]" sql-type="nvarchar(50)" /> 
     </key-property> 
    </composite-id> 
    <property name="temps_connection" type="int" /> 
    <property name="temps_envoi" type="int" /> 
    <property name="temps_reception" type="int" /> 
    </class> 
</hibernate-mapping> 

mais une exception apparaît: Impossible de compiler le document de mapping: base_donnee.simulateur.hbm.xml ---> System.InvalidOperationException: Impossible de trouver le dialecte dans la configuration

mon fichier App.config est:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/> 
    </configSections> 
    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
     <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
     <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> 
     <property name="connection.connection_string_name">Northwind</property> 
     <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property> 
     <mapping assembly="base_donnee"/> 
    </session-factory> 
    </hibernate-configuration> 
    <connectionStrings> 
    <add name="Northwind" connectionString="Data Source=HP-PC\SQLEXPRESS;Initial Catalog=Simulation; Integrated Security=true" providerName="System.Data.SqlClient"/> 

    </connectionStrings> 
</configuration> 

J'ai besoin d'aide, d'idées?

+1

semble être quelque chose de mal avec votre configuration, vous pouvez vous assurer que la conversion en identifiant composite à un seul Id colonne, et en essayant d'exécuter votre programme –

+0

si je l'ai converti, cela fonctionne, mais je suis obligé de faire la clé composite –

Répondre

2

Vous pouvez manquer le connection.driver_class

Ajouter ce qui suit à votre web.config: -

... 
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> 
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
... 
+0

non, il ne fonctionne pas, parce que le pilote est ici: