2012-05-06 141 views
-2

我有复合主键的问题: 我有一个表命名为“simulateur”,复合主键是Nombre_simulateur和日期 类simulateur.hbm.xml:NHibernate的复合主键

<?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> 

但出现异常:无法编译映射文件:base_donnee.simulateur.hbm.xml ---> System.InvalidOperationException:找不到方言在配置

我的文件的App.config是:

<?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> 

我需要帮助,有什么想法吗?

+1

好像出错了配置,可以确保通过复合ID转换为单id列,并试图执行您的程序 –

+0

如果我转换它,它的工作原理,但我有义务使关键复合 –

回答

2

您可能缺少connection.driver_class

以下内容添加到你的web.config: -

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

没有它没有工作,因为驱动程序在这里: