nhibernate schemaexport 및 configure () catch-22
-
06-07-2019 - |
문제
사용하고 싶습니다 DDD 새로운 프로젝트와 클래스를 먼저 모델로 한 다음 클래스 라이브러리를 기반으로 데이터베이스 스키마를 생성합니다. 내 계획은 nhibernate hbm2ddl 도구로 이것을하는 것입니다. SchemaExport
.
문제는 내가 얻을 수 없다는 것입니다 SchemaExport
이상한 캐치 -22 문제로 인해 일하기 위해서는 저를 입력합니다. SchemaExport
필요합니다 Configuration
유효한 nhibernate 구성 파일과 데이터베이스 매핑 세트가 필요한 개체 자체.
Catch-22는 여기에 configure ()를 할 때 불만이 있습니다. "Could not determine the name of the table for entity 'MyEntity'; remove the 'table' attribute or assign a value to it."
그래서 Configure()
메소드는 테이블이 존재하고 SchemaExport
그것을 기반으로 그것을 만들어야합니다 Configuration
테이블이 존재하지 않기 때문에 생성 할 수 없습니다.
그래서, 내가 어떻게 유효한 nhibernate를 만들어야 하는가 Configuration
필요한 매핑을 포함합니다 SchemaExport
실제로는 유용한 일을하지 않습니다 Configure()
제작할 테이블을 찾을 수 없다고 불평하고 불평합니다. SchemaExport
? "모드"가 있습니까? Configuration
객체는 주어진 테이블의 존재에 대해 데이터베이스를 확인하지 않거나 다른 일이 있습니까?
해결책
구성 파일을 게시 할 수 있습니까?
테이블이없는 상태 에서이 방법을 항상 사용하고 스키마를 즉시 생성 할 수 있습니다. 내 생각에 .hbm 파일 중 하나에 무언가가있을 수 있다는 것입니다. 스키마를 1 테이블로 줄이고 작업을 수행 한 다음 거기에서 구축하십시오. 참고로, 다음은 DB 스키마를 생성하는 데 사용하는 코드입니다.
var cfg = new Configuration();
cfg.Configure();
var schema = new SchemaExport(cfg);
schema.Create(true, true);
이것은 또한 스크립트를 콘솔로 푸시하여 DB에 대해 어떤 SQL이 생성되는지 알 수 있습니다.