문제

DDD 문제를 통해 작업하는 데 사용하는 참조 응용 프로그램이 있으며 현재 초점은 지속성에 있습니다. 이 게시물의 대체 제목은 DDD / TDD Persistence Tools 및 Methods 일 수 있지만 (매우) 광범위한 주제이며 SQL Server에 대한 특정 질문이 있습니다.

이 단락에서 현재 도구 세트를 배경으로 설명하겠습니다. 질문에 답하기 위해 건너 뛰십시오. NHibernate, Fluent Nhibernate, Rhino, Visual Studio 2008 및 SQL Server를 사용하고 있습니다. 현재의 생각은 Nhibernate를 사용하여 데이터 매핑 변경 후 DB를 생성하고 2008 년 대 VS의 생성 된 테이블을보고 지속성 매핑이 모든 패스를 테스트하는지 확인하는 것입니다. 원래 SQLITE를 테스트 DB로 사용하고 싶었지만 일부 방법 (예 : 참조 무결성)에서 정확한 매핑의 정확한 게이지라는 점에 회의적입니다. 그런 다음 SQL CE를 사용해 보았지만 VS와 함께 생성 된 테이블을 안구 공에 실망했습니다. 그렇기 때문에 이제 SQL Server를 처음 사용하는 것을 알아 내고 있습니다.

다음 명령 객체는 DB를 생성합니다.

public class GenerateNewDb_SqlServer : ICommand
    {
        public GenerateNewDb_SqlServer(Configuration cfg)
            : base(string.Format("Update a Sql Server Database"))
        {
            _cfg = cfg;
        }

        public override void Execute()
        {
            try
            {
                var schema = new SchemaExport(_cfg);
                schema.Create(true, true);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Schema Export Error Message: " + ex);
            }
        }
    }

문제는 이전 데이터베이스 개체가 여전히 있다는 것입니다. nhibernate 스키마 도구를 사용하여 만들기 전에 매번 전체 SQL Server DB를 삭제해야합니다. 누군가 코드에서 어떻게하는지 말해 줄 수 있습니까?


nhibernate.cfg.configuration 객체에서 DB를 삭제하는 데 사용할 수있는 것이 있습니까? 코드는 어떻게 생겼습니까?

건배, 베리

도움이 되었습니까?

해결책

고맙게도 이미 SchemaExport의 일부입니다. 전체 데이터베이스를 삭제할지 확실하지 않지만 참조 된 모든 SQL 객체를 삭제합니다. 이 같은?

private void DropSchema(Configuration _cfg)
 {  
        new SchemaExport(_cfg)
            .Drop(
                false, //script to the console
                true, //execute against db
            );
 }

추신은 일반적으로 SchemaExport.create 직전 에이 명령이 실행되면 새로운 데이터베이스를 얻을 수 있습니다.

pps nhibernate를위한 훌륭한 모델 중심의 것들 여기 (이것 스크린 캐스트 시리즈 놀랍습니다!)

다른 팁

SQL 엔티티에 마이그레이션 스크립트 사용을 고려하면 시도 할 수 있습니다.

루비 마이그레이션 스크립트 또는 아소닉

당신은 단지 "drop database"ODBC 드라이버를 사용하여 원하는 DB에서 작동합니다.

편집 : Nhibernate 구성에 자동으로이를 수행 할 것이 없다고 생각합니다. 정의하는 외부 프로세스의 일부 여야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top