2009-07-08 9 views
0

この質問の答えはわかりません。SubSonicオラクルとプロパティのケース

MSSQLSERVERとMYSQLを使用すると、次の構成は非常にうまく動作しますが、Oracleは使用できません。 Oracleはこの

貨物C =新しい貨物のように見えると

(); c.Idcargo = 1; MSSQLと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)) 

のようなものに見える場合、あなたのエラーは、Oracleから来ていない亜音速されていることを賭けています。これは、Oracleがすべての列名と表名を大文字として格納しているためです。あなたがキャメルケースのようにSubSonicに遭遇したい場合は、ldCargoをld_cargoに変更する必要があります(SubSonicはあなたのために "_"を削除します)

+0

こんにちはrunxc1、私はweb.configファイル に=「true」を設定removeUnderscoresこの方法で作業をDescricao_Testeのようなテーブル内の1つの以上のフィールドを作成し、もちろん..... ラクダのケースではなく、オラクルでは常に大文字のままです。 これを解決する他の方法をご存知ですか? – Valmir

+0

削除のアンダースコア= "true"はデフォルトであるため、設定する必要はありません。 c_test_info_idという名前の列があるときにデフォルトを使うSubSonicはこれをCTestInfoIdに変換します –

0

runxc1は、列/あなたのregexdictionaryreplace configは、テーブルの問題を隠していると思います。

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

あなたと同じ問題を抱えているので:あなたは、私はそれはそれは自分の欠点だと考えていしかし、引用符でテーブル/列名を囲むことによって、あなたのDB作成スクリプトで大文字と小文字を区別すること神託を強制することができ MySql私は、dbテーブル/列の命名規則にアンダースコア(runxc1が示すように)を使用することをお勧めします。その後regexdictionaryreplaceを完全に削除することができます。私のようにテーブルの列を作成しようとしました

+1

Adamは、大文字と小文字を区別するようにOracleを変更できると指摘していますが、誰もがそれが大きなNONOであり、 –

+0

はい、アダムに感謝します。列名の引用符は...このプロジェクトでは "_"を使用するようにすべての列を変更できませんが、次に変更する可能性があります。 ありがとうございました。 – Valmir