2009-07-08 2 views
0

이 질문에 대한 답을 모르겠습니다.SubSonic Oracle 및 속성 케이스

MSSQLSERVER와 MYSQL을 사용하면 다음 구성이 잘 실행되지만 오라클은 그렇지 않습니다. 오라클이

화물 C = 새로운화물와 같이 표시

(); c.Idcargo = 1;

MSSQL AND MYSQL

c.IdCargo = 1로

;

"Idcargo"가 아닌 "IdCargo"로 나타나도록 Oracle과의 연결을 구성하는 방법. ??

구성 :

<providers> 
     <clear/> 
     <add name="oracle" type="SubSonic.oracleDataProvider, SubSonic" 
    connectionStringName="oracle" 
    fixDatabaseObjectCasing="true" 
    regexDictionaryReplace="Empresaendereco,EmpresaEndereco;Empresacontato,EmpresaContato;Franqueadoendereco,FranqueadoEndereco;Franqueadocontato,FranqueadoContato;Funcionarioacesso,FuncionarioAcesso;Funcionarioendereco,FuncionarioEndereco;Funcionariocontato,FuncionarioContato;Clienteendereco,ClienteEndereco;Clientecontato,ClienteContato;Clientehistorico,ClienteHistorico;Agendastatus,AgendaStatus;Historicostatus,HistoricoStatus" 
    generateRelatedTablesAsProperties="true" 
    fixPluralClassNames="false" 
    generatedNamespace="ModeloDados" 
    regexIgnoreCase="false" 
    removeUnderscores="false" 
    setPropertyDefaultsFromDatabase="true" 
    generateNullableProperties="true" 
    useExtendedProperties="true" useUtc="true"/> 
    </providers> 

답변

1

Valmir, 무엇 당신의화물 테이블의 정의 모습입니까? 나는 당신의 정의는 ldCargo으로 건너되지 않습니다 음속의 재산보다이

Create Table Cargo(
ldCargo Decimal(12,0)) 

같이 보입니다 경우 오류가 오라클에서 오는 아니라 음속 것을 내기하고있다. 이것은 오라클이 모든 컬럼 이름과 테이블 이름을 대문자로 저장하기 때문입니다. 낙타의 경우와 같이 SubSonic으로 건너 뛰고 싶다면 ldCargo를 ld_cargo로 변경해야합니다 (SubSonic이 "_"을 제거합니다)

+0

안녕 runxc1, 나는 Web.config의에서 Descricao_Teste 같은 물론 세트 removeUnderscores의 표에 내가 같은 테이블 열을 만들려고 이런 식으로 일을 ..... = "true"를 한 번 더 필드를 생성 낙타의 경우이지만 오라클의 경우 항상 대문자로 유지됩니다. 이 문제를 해결하는 다른 방법을 알고 계십니까? – Valmir

+0

기본값으로 remove underscores = "true"를 설정할 필요가 없습니다. c_test_info_id SubSonic이라는 열을 가지고 있으면 기본값을 사용하여 CTestInfoId로 변환합니다. –

0

runxc1에 따르면 Oracle은 열/테이블 이름의 대소 문자를 고려하지 않으므로 , regexdictionaryreplace config는 테이블에 대한 이슈를 숨기고 있다고 생각합니다. 당신은 그러나 나는 그게 자신의 단점입니다 가지고 있다고 생각 따옴표와 함께 테이블/열 이름을 둘러싼하여 DB 작성 스크립트의 경우 민감하게 오라클을 강제 할 수 있습니다 : 당신과 같은 문제가 있기 때문에

http://www.dbforums.com/oracle/1005513-column-name-any-convention.html#post3705627 http://oracle.ittoolbox.com/groups/technical-functional/oracle-apps-l/column-name-case-771715

을 My SQL 나는 db 테이블/컬럼 명명 규칙을 위해 밑줄 (runxc1이 말한대로 다시 말하면)을 사용할 것을 제안합니다. 그런 다음 regexdictionaryreplace를 완전히 제거 할 수 있습니다.

+1

Adam은 대소 문자를 구분할 수 있도록 오라클을 변경할 수 있다고 지적 했으므로 모든 사람이 큰 NONO이며 많은 다른 오류가 발생할 것이라고 알려줍니다. –

+0

예, 감사합니다. Adam. 열 이름에 따옴표가 작동합니다 ...이 프로젝트에서 "_"을 사용하도록 모든 열을 변경할 수는 없지만 그 다음에 나는 변경할 수 있습니다 .... 다시 한 번 도움을 주셔서 감사합니다. – Valmir