Application_BeginRequest에서 원하지 않습니다.
DDL을 자동 생성하려면 TDD 클래스에서 수행해야합니다. 개발 데이터베이스 용 DDL을 생성해야 할 때 수동으로 호출 할 수있는 특수 클래스를 만듭니다. 같은
뭔가 :
private static void CreateDatabaseFromFluentNHibernateMappings()
{
var mappingAssemblies = RepositoryTestsHelper.GetMappingAssemblies();
SchemaExport schema = new SchemaExport(NHibernateSession.Init(new SimpleSessionStorage(), mappingAssemblies, NHIBERNATE_CFG_XML));
schema.Execute(true, true, false);
}
이 생성합니다 (NHIBERNATE_CFG_XML에서) 당신이 당신의 NHibernate에 설정 파일에 지정된 데이터베이스에 매핑을 기반으로 DDL을 실행합니다. 데이터베이스는 비어 있더라도 이미 존재해야합니다.
또한 등
private static void UpdateExistingDatabaseFromFluentNHibernateMappings()
{
var mappingAssemblies = RepositoryTestsHelper.GetMappingAssemblies();
SchemaUpdate schema = new SchemaUpdate(NHibernateSession.Init(new SimpleSessionStorage(), mappingAssemblies, NHIBERNATE_CFG_XML));
schema.Execute(true, true);
}
이 기존 데이터베이스를 업데이트 할 경우를 대비해 새로운 엔티티, 속성을 추가로 개발할 때 개발 데이터베이스의 스키마를 업데이트 할 수 있습니다 클래스에서 다른 방법을 만들 수 있습니다
기존 데이터베이스를 손상시키지 않으면 서 FNH에서 변경 한 내용을 확인하십시오. 특히 데이터베이스에 이미 테스트 데이터가있는 경우 매우 유용합니다.
마지막으로 NDbUnit을 사용하여 프로젝트 및 SCM에서 XML로 정의 된 테스트 데이터를 기반으로 데이터베이스를 미리로드 할 수 있습니다. 동일한 데이터베이스에서 작업하는 팀이 있고 데이터로 미리로드하려는 경우 모든 사람이 동일한 빈 슬레이트로 시작합니다.
사용 NDbUnit : 당신이 NDbUnit를 사용하는
private static void LoadTheTestDataintoDb()
{
const string connectionstring = // your connection string to your db
NDbUnit.Core.INDbUnitTest sqlDb = new NDbUnit.Core.SqlClient.SqlDbUnitTest(connectionstring);
sqlDb.ReadXmlSchema(/* your XML schema file defining your database (XSD) */);
sqlDb.ReadXml(/* Your XML file that has your test data in it (XML) */);
// Delete all from existing db and then load test data allowing for identity inserts
sqlDb.PerformDbOperation(NDbUnit.Core.DbOperationFlag.CleanInsertIdentity);
}
이 필요합니다. Stephen Bohlen에게 감사드립니다!
이 정보가 도움이되기를 바랍니다. 나는이 편지를 빨리 썼다. 그래서 내가 너를 혼란스럽게한다면 알려줘.
감사합니다. 토드! 필자는 스키마를 생성하기 위해 별도의 콘솔 응용 프로그램을 작성하는 것에 대해 생각하기 시작했지만, 나머지 테스트에서는이를 수행하는 것이 좋습니다. 모든 훌륭한 코드 예제를 보내 주셔서 감사합니다. 많은 도움이 될 것입니다. –