2012-01-04 1 views
0

s # arp lite 프레임 워크를 사용하여 응용 프로그램을 구축하고 있습니다. 내 테이블 중 하나는 User입니다. 그러나 User은 SQL Server 2008 키워드이므로 문제가됩니다.Nhibernate, 테이블 이름으로 SQL Server 키워드를 사용하는 방법?

SQL Server 키워드를 사용하여 테이블을 지원하도록 코드를 수정하려고했지만 작동하지 않습니다.

다음은 코드입니다. 선 (32)

https://github.com/codai/Sharp-Lite/blob/master/Example/MyStore/app/MyStore.NHibernateProvider/Conventions.cs

: 나는이 나에게 막연하게 잘 알고있는 것 같다 코드 다음

classCustomizer.Table("[" + Inflector.Net.Inflector.Singularize(type.Name.ToString()) + "]"); 

답변

3
이미 쉽게 (찾기 위해 다른 사람을 위해 여기에 대답을 게시, 메일 링리스트에 대답했다

과 포인트 :

https://github.com/codai/Sharp-Lite/blob/master/Example/MyStore/app/MyStore.NHibernateProvider/NHibernateInitializer.cs#L19

추가 : db.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;

또한 NHibernate에의 비 DB 특정 이스케이프 문자를 사용하여이 작업을 수동으로 할 수

+0

정말 고마워요. 이것이 내가 찾고있는 것입니다. – qinking126

0

로 변경되었습니다. 약속은 없지만 사용자 주위에서 따옴표를 사용하려고 시도 할 수 있습니다. 예 : select * from "User" 또는 은 Mydb.User에서 select *처럼 스키마 소유자를 제공합니다.

희망이 도움이됩니다. 행운을 빕니다!

+0

덕분에 작업, 사용자의 주위에 따옴표를하지 사용하여 시도 :

이 질문에 볼 수 있습니다. – qinking126

0

트릭을 수행해야합니다 당신이 "[사용자]"할 수 있지만, 오라클 거기에 있습니다 SQL 서버에서 역 따옴표`

을 다를 것입니다. "User"를 사용한다면 NHibernate는 현재 작업하고있는 데이터베이스에 이것을 적용 할 것입니다. 당신의 도움을 Fluent NHibernate Column Mapping with Reserved Word