2009-07-02 4 views
4

에서 찾을 수 없습니다 (오라클) 방언 나는NHibernate에 구성

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > 
<session-factory> 
    <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property> 
    <property name="connection.connection_string"> 
    User ID=user;Password=password;Data Source=database 
</property> 
    <property name="show_sql">false</property> 
    <property name="dialect">NHibernate.Dialect.Oracle9Dialect</property> 
    <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property> 
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property> 
</session-factory> 
지금

나는 오류 다음 수신 hibernate.cfg.xml로 다음있어 그가 운전 기사를 찾을 수없는 이유를 도와주세요. 일부 추가 정보를 원하시면 ... 그것은 최신 NHibernate에 버전을 사용하여 I 프로젝트 의 참조에 NHibernate에와 System.Data.OracleClient에 추가 만 유닛 테스트 응용 프로그램 내부의 순간에 실행중인 (2.2 베타)

감사에서 advance

답변

0

귀하의 PC에 로컬로 설치된 Oracle 클라이언트가 있습니까? 나는 이것이 당신이 연결할 필요가 있을지도 모르는 몇몇 운전자를 제공한다고 믿지만, 나는 확실하지 않다. 그렇다면 설치에서 Oracle.DataAccess.dll 파일을 프로젝트의 bin 폴더에 복사 해보십시오. 이것은 과거에 저에게 효과적이었습니다.

+0

클라이언트가 설치되어 있지만 드라이브의 모든 위치에서 Oracle.DataAccess.dll을 찾을 수 없습니다. 그런 다음 다시 여기에서 .NET (System.Data.OracleClient.dll)과 함께 제공된 데이터 공급자를 사용하고 있습니다. 이 오류는 Dialect에 있지만 드라이버는 아닙니다 (아직) : D –

6

NHibernate 어셈블리에 NHibernate.Dialect.Oracle9Dialect 언어가 없습니다.

NHibernate.Dialect.Oracle9iDialect가 있습니다.

NHibernate 구성 파일이 올바르게로드되고 있는지 확인하십시오.

onfiguration config = new Configuration().Configure("hibernate.cfg.xml"). 

이 당신의 NHibernate에 구성 파일이있는 hibernate.cfg.xml라고하며 응용 프로그램의 루트입니다 가정한다 : 같은 것을 사용합니다.

+0

답장을 보내 주셔서 감사합니다. dll에 반영자를 사용하고 나면, 나는 같은 constatation에왔다. .. 그러나. Oracle10gDialect 또는 Oracle9iDialect를 사용하면 여전히 동일한 오류가 발생합니다. -> 구성에서 방언을 찾을 수 없습니다. 아직도 내가 누락 된 뭔가있어 NHibernate 2.1에서 변경된 것 같아 –

+0

구성 및 세션 팩토리를 생성하는 코드를 게시 할 수 있습니까? – Nigel

1

나는 사이트에 지금 자신을 등록하고,이 순간에 내가 더 이상 덧글을 남길 수있어없는 것 같다, 그래서 난 그냥 새 응답에 코드를 다시 게시합니다 : D

에 구성 및 팩토리를 작성하십시오. 구성 config = new Configuration(); config.AddAssembly ("MyLib.Data.NH"); ISessionFactory factory = config.BuildSessionFactory();

필자는 Oracle10gDialect (사용할 수 있어야하는 것)를 사용하도록 구성을 변경했습니다 (비록 성공없이 9i를 시도했지만).

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > 
    <session-factory name="NHibernate.Test"> 
     <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property> 
     <property name="connection.connection_string"> 
     User ID=user;Password=password;Data Source=db 
    </property> 
     <property name="show_sql">false</property> 
     <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property> 
     <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property> 
     <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property> 
    </session-factory> 
</hibernate-configuration> 
+1

나는 틀릴 수도 있지만 web.config에 섹션이 없다면 NHibernate 구성 파일을 처리하지 않는 것처럼 보입니다. Configuration config = new Configuration() 및 config.AddAssembly ("MyLib.Data.NH")를 Configuration config = new Configuration(). Configure ("hibernate.cfg.xml")로 바꾸십시오. 이것은 당신의 Hibernate.cfg.xml이라고 불리는 당신의 Hibernate 설정 파일이 당신의 어플리케이션의 루트에 있다고 가정합니다. – Nigel

+1

네, 그게 전부입니다. 어셈블리를 추가하기 전에 config.Configure()를 먼저 추가하는 것을 잊었습니다. 내가 이것 (lol) 위에서 하루 종일 낭비했다라고 생각할 수 없다. 나이젤 감사합니다. 불행히도 내 평판은 너무 낮아서 대답을 회상 할 수 없습니다. – Ronald

+0

괜찮습니다. 도움이되기를 기뻐합니다. 돌아와서 평판을 얻었을 때 제 대답을 틱하십시오.). – Nigel