2016-10-06 1 views
-1

오래 동안 유창한 nhibernate를 사용하고 있습니다. 데이터베이스를 업데이트 할 때까지 잘 작동합니다. 내가 SQL 서버 2012을 사용하던 이전과 시도는 응용 프로그램에서 데이터베이스를 연결하면 2016 년에 업데이트가 오류가 발생합니다 : 그것은 연결을 시도nhibernate에서 데이터베이스를 연결하는 동안 시스템에서 파일을 찾을 수 없습니다.

The system cannot find the file specified.

. 내 연결 기능은 다음과 같습니다.

Fluently.Configure().Database(MsSqlConfiguration.MsSql2005.ShowSql().ConnectionString(x=> x.FromConnectionStringWithKey("imConnectionString2"))).Mappings(m=> m.FluentMappings.AddFromAssemblyOf<MapUsers>()).BuildSessionFactory(); 

데이터베이스 업데이트 전에 정상적으로 작동하고있었습니다. 나는 MsSql2005MsSql2012으로 바꾼다. 그러나 같은 결과가 나온다.

Fluent Nhibernate 측면 또는 구성에서 어떤 작업을해야합니까?

모든 지원하시기 바랍니다

+0

전체 예외 정보를 추가하십시오. –

+0

문제가 해결되면 피드백을 보내주십시오. –

+0

답장을 보내 주셔서 감사합니다. 그러나 저에게 도움이되지 않으므로 이전 서버를 사용하기 위해 되돌려 놓았습니다. –

답변

0

이 변경 SQL 클라이언트에 지원 윈도우와 리눅스 같은 다른 O.S되고있다 때문입니다 SQL 서버 2016 에 대한 클라이언트 연결에 큰 변화가 있습니다.

Microsoft ODBC Driver 13 for SQL Server - Windowshttps://www.microsoft.com/en-us/download/details.aspx?id=50420

검토 설치 : Installing SQL Server Native Client

SQL 서버 네이티브 클라이언트 (SNAC)는 SQL 서버를 넘어 새 개발 작업에서는 SNAC를 사용하여 2012 년 피를 지원하고, 계획되지 않은 그 현재 응용 프로그램을 수정 그걸 써. SQL Server 용 Microsoft ODBC 드라이버가 자 NHibernate를 구성하기 전에 마이크로 소프트 SQL 서버

에 윈도우에서 기본 연결을 제공, SQLCMD 도구를 사용하여 당신은 SQL 서버 2016에 연결할 수 있는지 확인

(서버 2016- 다운로드)

업데이트 :

msodbcsql.msi라는 드라이버를 설치하면 실제로 sql 2012 클라이언트와 동일한 드라이버입니다.

class FluentNHibernateTest 
{ 
    private static ISessionFactory CreateSessionFactory() 
    { 
     //also MsSqlConfiguration.MsSql2005 is working 
     return Fluently.Configure() 
       .Database(
        MsSqlConfiguration.MsSql2012.ShowSql() 
         .ConnectionString(x => x.FromConnectionStringWithKey("test16"))) 
       .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>()) 
       .BuildSessionFactory(); 
    } 
    public static string GetSqlVersion() 
    { 
     string sql = "select @@version version"; 
     var sessionFactory = CreateSessionFactory(); 

     using (var session = sessionFactory.OpenSession()) 
     { 
      var query = session.CreateSQLQuery(sql); 
      var result = query.UniqueResult(); 
      Console.WriteLine(result); 

      return result.ToString(); 
     } 
    } 
} 

출력 결과 :

나는 도서관 FluentNHibernate의 V 2.0.3을 사용하여 SQL 서버 2016에 연결하고 성공적으로 다음 코드를 실행, 윈도우 7 (32 비트)에서 드라이버를 설치
 FluentNHibernateTest.GetSqlVersion(); 

    Microsoft SQL Server 2016 (RTM-CU1) (KB3164674) - 13.0.2149.0 (X64) 
    Jul 11 2016 22:05:22 
    ....... 
관련 문제