2009-11-08 3 views
0

Linq2Sql에서 nHibernate로 데이터 계층을 변환하려고합니다. Xml은 nHibernate의 설정이 거꾸로되어있어 Fluent를 사용하고 있다고 생각한다.유창한 nHibernate가 데이터베이스를 계속 재 작성합니다. 이유가 무엇입니까?

저는 유창하고 저장소 패턴과 작업 단위 패턴을 추가 할 수 있었고 단위 테스트는 훌륭하게 보입니다.

그러나 지금 나는 내 서비스 계층에 연결하고 있으므로 내 응용 프로그램을 실행할 때마다 데이터베이스가 다시 생성된다는 것을 알게됩니다.

내 SessionProvider 코드가 다운 된 것 같습니다. 사용하고있는 모든 확장 기능을 잘 모르겠습니다. 어떤 일이 일어나는 것을 어떻게 막을 수 있는지에 대해 밝힐 수 있습니까?

public sealed class SessionProvider 
{ 
    private static ISessionFactory _sessionFactory; 

    private static ISessionFactory CreateSessionFactory() 
    { 
     try 
     { 
      return Fluently.Configure() 
       .Database(MsSqlConfiguration.MsSql2005 
           .ConnectionString(Properties.Settings.Default.DBConnection) 
           .Cache(c => c 
               .UseQueryCache() 
               .ProviderClass<HashtableCacheProvider>()) 
           //.ProxyFactoryFactory("NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHiber nate.ByteCode.Castle") 
           .ShowSql()) 
           .Mappings(m=>m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly())) 
       .ExposeConfiguration(BuildSchema) 
       .BuildSessionFactory(); 
     } 
     catch (Exception ex) 
     { 
      System.Diagnostics.Debug.WriteLine(ex.Message); 
      return null; 
     } 


    } 

    public static ISessionFactory SessionFactory 
    { 
     get 
     { 
      if (_sessionFactory == null) 
      { 
       _sessionFactory = CreateSessionFactory(); 
      } 
      return _sessionFactory; 
     } 
    } 

    public static ISession GetSession() 
    { 
     return SessionFactory.OpenSession(); 
    } 

    private static void BuildSchema(Configuration config) 
    { 
     // this NHibernate tool takes a configuration (with mapping info in) 
     // and exports a database schema from it 
     new SchemaExport(config).Create(false, true); 
    } 
} 

답변

3

.ExposeConfiguration(BuildSchema) 

새로운 SchemaExport를 (구성) .Create (허위 사실)에 대해 자세히 알아보기이 줄을 제거; here

실제로 마지막 인수는 모두 데이터베이스를 만듭니다.

+0

감사합니다. Mike. 그리고 링크도 감사드립니다. – Jordan

관련 문제