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);
}
}
감사합니다. Mike. 그리고 링크도 감사드립니다. – Jordan