Oracle 11gデータベースがあります。Oracle管理されたドライバマッピングを使用するEntity Framework NUMBER(10)を長くしても動作しません
私は新しいソリューションと私は、次のNuGetパッケージを追加する新しいプロジェクト(.NET 4.5)を作成:
- パッケージID = "EntityFramework" バージョン= "6.1.3"
- パッケージをID = "Oracle.ManagedDataAccess" バージョン= "12.1.24160419"
- パッケージID = "Oracle.ManagedDataAccess.EntityFramework" バージョン= "2400年1月12日"
私のweb.configファイルがedmMappingsのセクションを指定します。
<oracle.manageddataaccess.client>
<version number="*">
<dataSources>
<dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
</dataSources>
<edmMappings>
<edmMapping dataType="number">
<add name="int64" precision="10" />
</edmMapping>
</edmMappings>
</version>
</oracle.manageddataaccess.client>
私はその後、databse(モデル最初)からEFデザイナを使用して、新しいADO.NETエンティティデータモデルを追加します。
私はLINK_ID
列のテーブルPROCESS
を持っています。これはOracleではNUMBER(10)と定義されています。
生成された.edmxファイルとエンティティ(ttファイルを使用して生成)は、マッピングで指定されたlong(Int64)ではなく通常のint(Int32)を使用します。
私は、生成されたモデルが長いものを使用したいと思います。
私は行くとこれを手動で変更するが、その後、私は、実行時に次のエラーを取得することができます:指定
スキーマが有効ではありません。エラー:\ r \ nTestMappings2.msl(18,12): エラー2019:指定されたメンバマッピングが無効です。タイプ のメンバー 'LINK_ID'のタイプ 'Edm.Int64 [Nullable = True、DefaultValue =]' 'Model.PROCESS'は 'OracleEFProvider.number [Nullable = True、DefaultValue =、Precision = 10、スケール= 0]タイプ 'Model.Store.PROCESS'のメンバ 'LINK_ID'の ' 。
生成されたモデルに正しいタイプを使用させるにはどうすればよいのですか。タイプを変更するとランタイムマッピングエラーが発生します。
私はNUMBER(10)の列が含まれていない場合には、Oracle自体への接続が動作しているようだので、私は私の完全な.configファイルが含まれていませんでした誰かが興味があれば投稿することができます。 – Lastwall