ODP.NET 11.2.0.3.0 で Entity Framework を使用しています。一部のテーブルでは永続性が機能していますが、これは単純な新しいオブジェクトの追加を完全に拒否しており、よくわかりません。よろしくお願いいたします。ありがとうございました
これがコードです。モデル ブラウザを使用してオブジェクトからイメージ フィールドを削除しましたが、SaveChanges() が呼び出されるとコードが失敗します。
var corpDirectoryEntities = new CorpDirectoryEntities();
var cc = new EmployeePhoto();
cc.UserId = 12345; // NUMBER field
cc.ImageName = "imagename"; // VARCHAR2(100)
cc.Image = photoStream; // LONG RAW
corpDirectoryEntities.EmployeePhotos.AddObject(cc);
corpDirectoryEntities.SaveChanges();
以下の例外が発生します。
System.Data.UpdateException がユーザー コードによって処理されませんでした Message=エントリの更新中にエラーが発生しました。詳細については、内部例外を参照してください。 ソース=System.Data.Entity スタックトレース: System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager stateManager、IEntityAdapter アダプター) で System.Data.EntityClient.EntityAdapter.Update (IEntityStateManager entityCache) で System.Data.Objects.ObjectContext.SaveChanges (SaveOptions オプション) で System.Data.Objects.ObjectContext.SaveChanges() で C:\Dev\Projects\Repositories\Services\CorpDirectory\CorpDirectoryRepository.cs:line 356 の Repositories.Services.CorpDirectory.CorpDirectoryRepository.SaveDirectoryAccountPhoto(Int32 accountId, Byte[] photoStream) で C:\Dev\Projects\Repositories.Tests\CorpDirectory\CorpDirectoryUserTestFixture.cs:line 192 の Tests.CorpDirectory.CorpDirectoryUserTestFixture.TestGetUserPhoto() で 内部例外: System.Data.EntityCommandCompilationException Message=コマンド定義の準備中にエラーが発生しました。詳細については、内部例外を参照してください。 ソース=System.Data.Entity スタックトレース: System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand (DbModificationCommandTree コマンド ツリー) で System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand (UpdateTranslator トランスレーター、Dictionary'2 identifierValues) で System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute (UpdateTranslator トランスレーター、EntityConnection 接続、Dictionary`2 identifierValues、List`1 generatedValues) で System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager stateManager、IEntityAdapter アダプター) で 内部例外: System.InvalidOperationException Message=オブジェクトの現在の状態のため、操作は有効ではありません。 ソース=Oracle.DataAccess スタックトレース: Oracle.DataAccess.Client.SqlGen.DmlSqlGenerator.ExpressionTranslator.Visit (DbScanExpression 式) で System.Data.Common.CommandTrees.DbScanExpression.Accept (DbExpressionVisitor ビジター) で Oracle.DataAccess.Client.SqlGen.DmlSqlGenerator.GenerateInsertSql (DbInsertCommandTree ツリー、EFOracleProviderManifest providerManifest、EFOracleVersion sqlVersion、List'1& パラメーター) で Oracle.DataAccess.Client.SqlGen.SqlGenerator.GenerateSql (DbCommandTree ツリー、EFOracleProviderManifest providerManifest、EFOracleVersion sqlVersion、List`1& パラメーター、CommandType& commandType) で Oracle.DataAccess.Client.EFOracleProviderServices.CreateCommand (EFOracleProviderManifest providerManifest、DbCommandTree コマンド ツリー) で Oracle.DataAccess.Client.EFOracleProviderServices.CreateDbCommandDefinition (DbProviderManifest providerManifest、DbCommandTree commandTree) で System.Data.Common.DbProviderServices.CreateCommandDefinition (DbCommandTree コマンド ツリー) で System.Data.Common.DbProviderServices.CreateCommand (DbCommandTree コマンド ツリー) で System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand (DbModificationCommandTree コマンド ツリー) で 内部例外: